关于git checkout切换版本提示"需要先stash"的问题
设当前repo有br1和br2两个分支, 1.txt文件在br1中有,br2中没有;
那么在br1分支时,修改了1.txt但没有提交, 用git checkout br2切换分支时,就会提示:“Please, commit your changes or stash them before you can switch branches.” 无法切换分支。
操作如下:
git checkout br1;
echo "abc" > 1.txt;
git add -- 1.txt
git commit -m "create 1.txt."
echo "abc def" >> 1.txt
git checkout br2; ////////执行这句会提示需要先stash或者commit.
但是, 如果1.txt文件不在br1中,而只是单纯以新文件形式add加到暂存区,再用git checkout br2的时候,就不会有问题!
git checkout br1;
echo "abc" > 1.txt;
git add -- 1.txt
git checkout br2; //这句话就可以切换分支到br2!
按理说,git checkout br2, 会用br2的tree完全替换暂存区和工作区,也就是前面两种情况下都应该发生"先stash"的提示才对!
谁能帮忙回答下,为什么会有不一致的发生呢???????