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

本文关键字:sln docstates 删除 存储 Git | 更新日期: 2023-09-27 18:00:06

不知怎么的,我不小心提交了一个.sln.docstates文件。现在我把它添加到gitignore中,但是它不会被忽略。我想这是因为我已经犯过一次了。不知道什么时候!

有没有可能让这个gitignore规则发挥作用?如何从存储库中删除它?

*.sln.docstates

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

以这种方式删除它:

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

…那么.gitigner应该受到尊重。

这取决于您是推送了存储库更改还是本地更改。

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

如果您的更改仅为本地更改,则使用git log .sln.docstates查找文件的历史记录,并定位添加文件的提交位置。从提交中删除文件需要一些git filter-branch魔法,请参阅相应的答案。

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