Git从存储库中删除* .sln.docstates

时间:2011-06-23 21:57:47

标签: c# visual-studio visual-studio-2010 git github

不知何故,我意外地提交了一个.sln.docstates文件。现在我将它添加到gitignore,但它不会被忽略。我想这是因为我已经承诺了一次。不知道什么时候!

是否有可能使这个gitignore规则有效? 如何从我的存储库中删除它?

*。sln.docstates

2 个答案:

答案 0 :(得分:3)

以这种方式删除它:

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

...然后.gitignore应该受到尊重。

答案 1 :(得分:1)

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

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

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

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