2011-06-23 136 views
1

不知何故,我意外地提交了一个.sln.docstates文件。现在我将它添加到gitignore中,但不会被忽略。我认为这是因为我已经犯了一次。不知道什么时候!Git从存储库中删除* .sln.docstates

有没有可能使这个gitignore规则工作? 如何从存储库中删除它?

* .sln.docstates

回答

1

这取决于您是否推送了存储库更改或者更改是本地的。

如果您已将更改推送到远程存储库,那么您不应该重写历史记录。

如果您的更改仅为本地,则使用git log .sln.docstates来查找文件的历史记录,并找到您添加文件的提交。从提交中删除文件需要一些git filter-branch magic,see a corresponding answer

如果该文件仅存在于最近未发布的提交中,情况会更简单:您可以使用git rm --cached .sln.docstatesgit commit --amend。 (--cached开关告诉git不要触摸您的文件并将其从索引中删除,然后修改上次提交,而不是使用--amend开关创建新文件。)

3

删除这样说:

$ git rm --cached \*.sln.docstates 

...那么的.gitignore应得到尊重。