从Git Repo中删除现有文件

时间:2010-11-08 14:35:38

标签: git

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

3 个答案:

答案 0 :(得分:140)

只是要立即给出完整答案:

    来自klemens的
  1. :您需要将文件添加到回复中不需要的文件上方某处的.gitignore文件中。即。

    $ cd $ cat>>的.gitignore development.log C-d

  2. 来自m的
  3. narebski:然后你需要通过执行“git rm --cached <file>然后提交删除”来从仓库中删除文件

  4. 如果您还希望让repo看起来好像从未跟踪过那个文件,那就更加复杂和高度气馁,因为它不仅会为您历史记录中的每一次提交创建全新的提交,从而破坏了互操作性。克隆你的repo的其他人之间的讨厌方式,但它也使得每个提交都没有经过测试(假设你在制作之前测试你的提交)。

    考虑到这一点,如果您的目标是filter-branch,那么您正在寻找的工具。第一个例子正是我所描述的。

答案 1 :(得分:53)

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

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

答案 2 :(得分:1)

添加gitignore文件。

请参阅http://git-scm.com/docs/gitignore