关于git checkout切换版本提示"需要先stash"的问题

美伊小公主的奶爸 2016-08-27 12:14:35
设当前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"的提示才对!
谁能帮忙回答下,为什么会有不一致的发生呢???????

...全文
2249 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallcrocodile 2016-09-23
  • 打赏
  • 举报
回复

1,279

社区成员

发帖
与我相关
我的任务
社区描述
软件工程 CVS/SVN
社区管理员
  • 版本控制社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧