这令我感到惊讶,我无法想象它是如何可能的。
git checkout -b newbranch
。Foo.java
以外的一些文件。git checkout master
(这是我原来的分支)给出错误:
错误:结帐后,您对以下文件的本地更改将被覆盖:
Foo.java 请提交更改或存储更改,然后才能切换分支。
git stash
git checkout master
它自动合并成功。为什么需要自动合并?为什么需要阻止我的git checkout
离开从master
而不是回到 master
?我试图了解git
何时提出这些投诉的逻辑。
答案 0 :(得分:3)
当你使用git checkout -b
它实际上没有消失时,它仍然保持同一个提交。这就是为什么它允许您结账保留所有本地更改。 “返回”主人会更改提交(并实际修改工作树),这就是它会覆盖您的更改的原因。