Git 在 checkout 后显示大量更改和未跟踪的文件

标签 git

所以我在一个分支上,我们称它为 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/

相关文章:

git - 简单的 git post-commit 钩子(Hook)将提交的文件复制到某个文件夹

java - 如何将 eclipse 项目添加到现有的 git repo?

python - 使用gitpython解析git日志

node.js - 使用nodejs读取git更改的文件

git - 如何从另一台计算机获取git存储库中的文件

git - 如何推送 .gitignore 中指定的文件?

git - IntelliJ IDEA 中的 "Revert Commit"和 "Undo Commit"有什么区别?

java - jgit - 基于文件扩展名的 git diff

typescript - 如何组织一个项目来共享代码?

wordpress - 推送到 git 存储库子文件夹上的远程源?