2011-08-29 62 views
65

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

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

+0

请添加您的.gitignore文件 - 这样我们可能会看到有关它的任何问题。 – Lars

+0

[如何忽略已经在之前的提交中进行过配置的文件]的可能的重复(http://stackoverflow.com/questions/625919/how-to-ignore-a-file-which-is-already-comitted -in-the-before-commit) –

回答

143

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

git rm --cached config.php 

如果你只是想在本地忽略它,你也可以让它无视git的状态:

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

好的谢谢!如果我将我的分支合并到另一个分支,该文件是否会产生一些问题? – prcaen

+1

@ Nimbus147:它不应该是一个问题,并且该文件的任何更改仍将被忽略(即未添加/提交)。 – VonC

+4

'假设 - 不变'效果很好,谢谢 –

-3

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

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

我通常会将文件拆分为两个,一个是允许的,我可以更改,其中包括第二个文件(如果存在),然后devs可以在忽略的文件中进行配置更改。

+1

“_Once文件列在.gitignore中,你不能改变它” - 你能澄清一下,你的意思是?我在许多'.gitignore'文件中都有很多文件**,并且我经常更改这些文件!这是第一次,我听到有人说,一旦我将文件添加到'.gitignore',我无法改变它。 – trejder

+1

他其实是错的。你可以改变它们。 Git只是不上传它们,甚至不给你上传它们的选项。 – David

2

如果该文件已经在库中,因此指数/临时区域,那么对.gitignore的更新不会改变这种情况 - 它会继续保持承诺。

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

相关问题