【问题标题】:Git does not delete files created after a commit I reverted toGit 不会删除在我恢复到的提交后创建的文件
【发布时间】:2013-07-24 09:32:43
【问题描述】:

我有一个 Rails 项目,我做了以下步骤:

  1. git commit -m "Format gemfile"git push 确保一切都是干净的。这次提交的 id 是 b24d101

  2. git checkout -b newbranch

  3. 在新分支上,我删除了一个文件,更改了另外 2 个文件并生成了其他几个文件。

  4. git status 我修改了 2 个文件,删除了 1 个文件,还有几个文件未跟踪。到目前为止一切顺利。

  5. 我发现了一个问题,所以我通过git checkout master回到了master分支,并通过git branch -d newbranch删除了newbranch。

  6. git status 仍然显示有几个未跟踪的文件。

  7. 我决定恢复到上次提交。

  8. git reset --hard b24d101

  9. git status 现在显示没有文件被删除或修改(实际上我可以在手动检查后确认这一点,第 3 步中删除的文件在那里,第 3 步中对 2 个文件的编辑消失了)。但是我仍然有这几个未跟踪的文件。我不要他们。 git 不应该在创建这些文件后删除它们:a)在一个新分支上,该分支不再存在并且在删除之前没有合并,b)在我恢复到提交之后?

附:我想手动"clean" 这些文件吗?

【问题讨论】:

    标签: git git-revert


    【解决方案1】:

    您在步骤 3 中生成的文件从未提交,因此 git 没有跟踪它们。 Git 从不接触未跟踪的文件,这就是为什么它将它们留在分支删除中。因此,“它们是在新分支上创建的”并不重要,因为您在分支上时没有添加或跟踪它们。

    但是,如果您已经提交了它们,那么一旦您切换回 master 分支,它们就会被正确删除。

    【讨论】:

      【解决方案2】:

      我认为这是“P.S.”的答案问题是肯定的。 只要新文件没有暂存或提交,它们就不会“属于”任何分支,git 会完全忽略它们,如果要删除它们,则必须手动执行。

      问候, 乌迪

      【讨论】:

        猜你喜欢
        • 2019-12-22
        • 1970-01-01
        • 2020-07-09
        • 2017-06-04
        • 1970-01-01
        • 2020-06-19
        • 2017-01-20
        • 2016-04-17
        相关资源
        最近更新 更多