所以我在一个分支上,我们称它为 feature/PRO-10
并且我想切换到另一个分支以快速检查一段代码的状态。我执行 git stash
来存储我的更改,然后执行 git checkout bugfix/PRO-13
以转到我想查看代码的分支。我在这个分支上完成了我想做的事情(没有做任何更改)并执行 git checkout feature/PRO-10
以返回我正在开发的分支。我正要执行 git stash pop
但是等等!有大量已修改和未跟踪的文件以及其他更改。
他们是怎么出现的?我从来没有做过任何形式的 merge 。我可能已经执行了 git pull
以获取最新的 bugfix/PRO-13
但我不明白为什么这会导致大量更改跟随我到我原来的分支。
最糟糕的是有时我会在执行 git status
之前执行 git stash pop
,这意味着我可能会将我的原始更改与所有这些混合在一起其他似乎不知从哪里冒出来的口香糖。
这些变化来自哪里?消除它们是否安全?
最佳答案
当您git checkout
时,git 会尝试删除目标分支中不存在的内容。如果您正在运行病毒扫描程序,它会留下它们或提示您。如果您确信已将所有内容存储或提交,您可以 git reset --hard
来删除这些废弃的文件。请小心,因为这特别说明“在没有警告的情况下恢复所有本地更改”,因此请确保这确实是您想要做的。
关于Git 在 checkout 后显示大量更改和未跟踪的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367125/