我有一个rails项目,我做了以下步骤:
git commit -m "Format gemfile"
和git push
确保一切都干净。此提交的ID为b24d101
git checkout -b newbranch
在新分支上,我删除了一个文件,对其他2个文件进行了更改,并生成了其他几个文件。
git status
我修改了2个文件,删除了1个文件,未删除了几个文件。到目前为止一切顺利。
我发现了一个问题,所以我通过git checkout master
移回了主分支,并通过git branch -d newbranch
删除了新分支。
git status
仍然显示有几个未跟踪的文件。
我决定恢复上一次提交。
git reset --hard b24d101
git status
现在显示没有文件被删除或修改(实际上我可以在手动检查后确认这一点,步骤3中删除的文件就在那里,对第3步中的2个文件进行了编辑消失了)。但是我仍然有这几个未跟踪的文件。我不想要他们。是不是git应该删除这些文件,因为它们是创建的:a)在一个新的分支上,它不再存在并且在删除之前没有合并,以及b)在提交之后我还原为?
P.S。我想手动"clean"这些文件吗?
答案 0 :(得分:1)
您在步骤3中生成的文件从未提交过,因此git不会跟踪它们。 Git从不接触未跟踪的文件,这就是为什么它让他们删除分支。因此,“它们是在新分支上创建的”并不重要,因为您在分支机构时没有添加或跟踪它们。
但是,如果你已经提交了它们,那么一旦你切换回master
分支就会被正确删除。
答案 1 :(得分:1)
我认为这是“P.S.”的答案。问题是肯定的。 只要新文件没有暂存或提交,它们就不属于任何分支,git完全忽略它们,如果你想删除它们,你必须手动完成。
此致 UDI