从Git Repo中删除现有的文件

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

只是一次性给出完整的答案:

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

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

  2. 从m。 narebski:然后你需要通过执行“ git rm --cached <file>然后提交这个删除文件”

如果您还希望将回购看起来好像从未跟踪过这个文件,那么这个回复就会复杂得多,而且极其灰心,因为它不仅会为您的历史logging中的每一次提交创build全新的提交,从而以一种恶意的方式破坏了互操作性克隆你的回购的其他人之间,但它也留下每一个未经testing的承诺(假设你在提交之前testing你的承诺)。

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

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

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

添加gitignore文件。

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