5

假设我有一个分支 A,然后从那个分支 B。我在 A 上进行了一系列更改,然后签出 B 并执行git pull. 现在我对 B 进行了更改,但意识到它应该在 A 中。如果我现在尝试这样做git checkout A,我会在我触摸的文件中收到“您对以下文件的本地更改将被结帐覆盖”。

如果我只是在 B 中做了一个 git pull 并且从那以后没有触及 A 中的那个文件,为什么我的更改会被覆盖?

4

1 回答 1

9

您收到该消息的原因是分支 A 和分支 B 之间的基础文件(在您未提交的修改之前)不同。如果文件相同,Git 将切换分支并在切换到分支 A 后保留相同的未提交修改。

实现这些更改的一种方法是隐藏它们:

(on branch B)$ git stash
git checkout A
git stash pop

如果有冲突的更改,您可能必须在此时解决冲突。如果有更改但它们不冲突,那么这将成功。

于 2012-08-20T20:36:49.863 回答