【问题标题】:Git remove *.sln.docstates from repositoryGit 从存储库中删除 *.sln.docstates
【发布时间】:2011-09-21 14:38:10
【问题描述】:

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

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

*.sln.docstates

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      这样删除:

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

      ...那么 .gitignore 应该受到尊重。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-09
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 2016-01-22
        • 2015-02-23
        • 2013-11-17
        • 2011-01-04
        相关资源
        最近更新 更多