1

我有一个 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并删除了新分支git branch -d newbranch

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

  7. 我决定恢复到我的最后一次提交。

  8. git reset --hard b24d101

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

PS我想手动“清理”这些文件吗?

4

2 回答 2

1

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

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

于 2013-07-24T10:18:15.387 回答
1

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

问候, 乌迪

于 2013-07-24T10:25:41.537 回答