我有一个文件(config.php),已经提交给Git存储库,但我想在本地忽略,即我希望该文件保留在存储库中,但强制Git忽略对它的任何更改。
我将文件放入.gitignore,但它仍然被标记为已更改,并且Git仍在尝试对其进行更改,每次我提交的内容。任何想法,我错过了什么或做错了什么?
答案 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中列出文件后,您无法更改它。
所以你可以在一次提交中从列表中删除文件,然后提交更改,然后在第三次提交中将文件重新添加到忽略列表。
我通常做的是将文件拆分为两个,一个是允许的,我可以更改,包括第二个文件(如果存在),然后开发人员可以选择在被忽略的文件中进行配置更改。