如何忽略存储库中的文件?

时间:2011-08-29 14:38:57

标签: git gitignore git-rm

我有一个文件(config.php),已经提交给Git存储库,但我想在本地忽略,即我希望该文件保留在存储库中,但强制Git忽略对它的任何更改。

我将文件放入.gitignore,但它仍然被标记为已更改,并且Git仍在尝试对其进行更改,每次我提交的内容。任何想法,我错过了什么或做错了什么?

4 个答案:

答案 0 :(得分:173)

如果文件仍然显示在状态中,即使它位于.gitignore中,请确保该文件尚未被跟踪。

git rm --cached config.php

如果你只是想在本地忽略它,你也可以通过git status忽略它:

git update-index --assume-unchanged config.php

答案 1 :(得分:2)

如果文件已经在存储库中,因此已经存在于索引/暂存区域,那么对.gitignore的更新将不会改变这种情况 - 它会继续被提交。

要从索引/暂存区域删除文件,请使用git rm <file>

答案 2 :(得分:2)

忽略签入文件:

git update-index --assume-unchanged file

要还原

git update-index --no-assume-unchanged file

全部还原

git update-index --really-refresh 

答案 3 :(得分:-3)

在.gitignore中列出文件后,您无法更改它。

所以你可以在一次提交中从列表中删除文件,然后提交更改,然后在第三次提交中将文件重新添加到忽略列表。

我通常做的是将文件拆分为两个,一个是允许的,我可以更改,包括第二个文件(如果存在),然后开发人员可以选择在被忽略的文件中进行配置更改。