2013-02-15 125 views
0

所以我找到了一个解决方案,其中.gitignore应忽略我告诉它的文件。但事实证明,如果你已经犯了他们,.gitignore文件并不重要。建议的解决方案是git rm文件名。

我的问题是,
有一个我想贡献的回购,它已经提交了所有的初始文件。因此,我添加了几个文件名,我想gitignore在.gitignore中,并提交它推送它,拉请求被合并。
现在我正在修改其中一个gitignore文件,当我修改gitign状态(预期)时。所以我做了一个git rm index.php文件被删除。这不应该是解决方案,对吧?所以我应该删除它提交并推拉它?那会消失的。
我相信我做错了什么。
欢迎任何帮助。

P.S.我读了这个Git Ready Link但每次都假设不变,这是不可行的。gitignore文件不会忽略和git rm实际上删除文件

我gitignore文件看起来是这样的:

/index.php 
/assets/* 
/protected/config/* 
/protected/runtime/* 
*~ 
[#]*[#] 
+0

你检查了你的.gitignore文件吗? – hd1 2013-02-15 08:05:57

+1

你想实现什么?为什么你想忽略已经提交的文件?也许['git update-index --assume-unchanged '](http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html)是你在做什么之后? – 2013-02-15 08:11:25

+0

,因为每台机器的配置文件都不相同。如果你熟悉yii框架,你会知道为什么忽略运行时和资产。这只是没用。 – 2013-02-15 08:42:06

回答

2

我想你需要

$ git update-index --assume-unchanged config_file 

而不是修改.gitignore文件忽略它们。

通过这种方式,您可以保留文件,但所做的任何更改都将被忽略。当您需要修改它时,请使用

$ git update-index --no-assume-unchanged config_file 

重新跟踪文件。然后你可以在config_file上进行修改。

我认为这是管理配置相关文件的更好方法。 .gitignore更适合临时文件。 :)

+0

因此,直到我不希望它跟踪更改它只会在那里?我的意思是我会每次都保持pushiny代码而不明确写它。我只需要做一次吧? – 2013-02-15 08:40:07

+0

此外,你提到的行已经在链接git ready中提出,这看起来很糟糕,因为我有我需要忽略的文件夹。 – 2013-02-15 08:42:58

+0

@dibs_ab最好一个一个修改,否则,当你修改一个,其他人将提交 – Kjuly 2013-02-15 09:18:11