在这种情况下,为什么我的本地Git更改会被结帐覆盖?

时间:2012-08-20 20:33:55

标签: git version-control merge branch branching-and-merging

说我有一个分支A,从那里我分支B.我在A上做了一堆修改,然后结账B并做了git pull。现在我对B进行了更改但是意识到它本应该在A中。如果我现在尝试git checkout A,我会得到“您对以下文件的本地更改将被结帐”覆盖到我触摸的文件

为什么我的更改会被覆盖,如果我刚刚在B中执行git pull并且之后没有在A中触及该文件?

1 个答案:

答案 0 :(得分:9)

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

实现这些变革的一种方法是存储它们:

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

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

相关问题