从Git Repo中删除现有文件

Spl*_*lin 125 git

我希望git停止在我们的存储库中跟踪我的本地开发日志(log/development.log).这可能吗?我该怎么办?

Tim*_*her 141

只是为了给出完整答案:

  1. 来自klemens:您需要将文件添加到.gitignore文件中,位于repo中不需要的文件上方.即

    $ cd $ cat >> .gitignore development.log Cd

  2. 来自m.narebski:然后你需要通过执行" git rm --cached <file>然后提交删除" 从repo中删除文件

如果你也希望让repo看起来好像从未跟踪过该文件,那就更加复杂和高度气馁,因为它不仅为你历史上的每一次提交创建了全新的提交,从而以一种令人讨厌的方式破坏了互操作性克隆你的回购的其他人之间,但它也使每个提交未经测试(假设你在做它们之前测试你的提交).

记住这个警告,如果你的目标是,你正在寻找的工具filter-branch.第一个例子正是我所描述的.

  • 使用git rm --cached似乎不仅删除了我的分支,但当我拉到另一个系统时,它会删除该系统上的物理文件.知道那里发生了什么吗? (3认同)
  • 针对上述情况:我认为问题在于,在提取更改之前,我没有在备用系统上安装.gitignore,因此删除了本地副本.至少那是理论 (2认同)

kus*_*sma 53

要停止跟踪文件,只需使用git rm --cached <filename>.

但正如其他人所指出的那样,将文件添加到.gitignore可能会阻止您在以后意外添加它.