不知何故,我意外地提交了一个.sln.docstates文件。现在我将它添加到gitignore中,但不会被忽略。我认为这是因为我已经犯了一次。不知道什么时候!Git从存储库中删除* .sln.docstates
有没有可能使这个gitignore规则工作? 如何从存储库中删除它?
* .sln.docstates
不知何故,我意外地提交了一个.sln.docstates文件。现在我将它添加到gitignore中,但不会被忽略。我认为这是因为我已经犯了一次。不知道什么时候!Git从存储库中删除* .sln.docstates
有没有可能使这个gitignore规则工作? 如何从存储库中删除它?
* .sln.docstates
这取决于您是否推送了存储库更改或者更改是本地的。
如果您已将更改推送到远程存储库,那么您不应该重写历史记录。
如果您的更改仅为本地,则使用git log .sln.docstates
来查找文件的历史记录,并找到您添加文件的提交。从提交中删除文件需要一些git filter-branch
magic,see a corresponding answer。
如果该文件仅存在于最近未发布的提交中,情况会更简单:您可以使用git rm --cached .sln.docstates
和git commit --amend
。 (--cached
开关告诉git不要触摸您的文件并将其从索引中删除,然后修改上次提交,而不是使用--amend
开关创建新文件。)
删除这样说:
$ git rm --cached \*.sln.docstates
...那么的.gitignore应得到尊重。