假设我有一个分支 A,从那个分支 B。我对 A 做了一堆更改,然后 checkout B 并执行 git pull
。现在我对 B 进行了更改,但意识到它应该在 A 中。如果我现在尝试 git checkout A
,我会得到“您对以下文件的本地更改将被 check out 覆盖”到我触摸的文件。
如果我只是在 B 中执行 git pull 并且从那以后就没有触及 A 中的那个文件,为什么我的更改会被覆盖?
最佳答案
您收到该消息的原因是分支 A 和分支 B 之间的基础文件(在您未提交的修改之前)不同。如果文件相同,Git 将切换分支并保留切换到分支 A 后相同的未提交修改。
实现这些更改的一种方法是将它们存储起来:
(on branch B)$ git stash
git checkout A
git stash pop
如果有冲突的更改,您可能必须在此时解决冲突。如果有变化但不冲突,那么这将成功。
关于git - 为什么在这种情况下我在 Git 中的本地更改会被 checkout 覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044716/