git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。
为什么呢?
因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。
要想在分支间切换, 又不想又上述影响, 怎么办呢? git stash搞起。要注意,在当前分支git stash的内容, 在其他分支也可以git stash pop出来,为什么? 因为:工作区和暂存区是公共的。
建议自己操作并理解一下。
不多说。
---------------------
作者:stpeace
来源:CSDN
原文:https://blog.csdn.net/stpeace/article/details/84351160
版权声明:本文为博主原创文章,转载请附上博文链接!
解决问题
当执行命令 git checkout develop 切换到develop分支时,如果之前的分支对文件有修改,也会将修改的文件信息带到develop分支上来。怎么干净地切换到develop分支?有两种方案,视情况而定。
方案一:git reset HEAD --hard
方案二:git stash
方案三:git commit
场景描述
1、当前分支:alanchen
2、在alanchen分支上修改了几个文件,如,A、B、C。
3、切换到develop分支时,A、B、C这三个文件的修改也会带过来。用 git status 查看,可以看到A、B、C这三个文件有修改。
方案一适用场景
想切换到develop分支时是干净的,如果这些修改不再需要,可以直接丢弃胡话,采用第种方案。
执行命令:
git checkout develop
git reset HEAD --hard
需要注意的是:
这样alanchen分支上A、B、C的修改也没有了
方案二适用场景
如果这些修改还需要,只是想临时切换到develop分支,那么采用第二种方案。
执行命令:
git stash
git checkout develop
方案三适用场景
如果是同时开了两份分支在开发,在当前分支上的修改都需要保留,希望切换到另外一个分支去开发,那么采用第三种方案。
执行命令:
git add .
git commit -m "message"
git checkout develop
参考文章
作者:陈琰AC
链接:https://www.jianshu.com/p/d2a9d8e59ba9
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。