git的工做区和储藏区是共享的

 git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。git

       为何呢?工具

       由于未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于全部分支而言, 工做区和暂存区是公共的。spa

       要想在分支间切换, 又不想又上述影响, 怎么办呢? git stash搞起。要注意,在当前分支git stash的内容, 在其余分支也能够git stash pop出来,为何? 由于:工做区和暂存区是公共的。.net

       

       建议本身操做并理解一下。blog

       很少说。
--------------------- 
做者:stpeace 
来源:CSDN 
原文:https://blog.csdn.net/stpeace/article/details/84351160 
版权声明:本文为博主原创文章,转载请附上博文连接!开发

 

 

解决问题

当执行命令 git  checkout develop 切换到develop分支时,若是以前的分支对文件有修改,也会将修改的文件信息带到develop分支上来。怎么干净地切换到develop分支?有两种方案,视状况而定。get

方案一:git reset HEAD --hardit

方案二:git stash文件

方案三:git commitco

场景描述

一、当前分支:alanchen

二、在alanchen分支上修改了几个文件,如,A、B、C。

三、切换到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

参考文章

Git 工具 - 储藏(Stashing)

做者:陈琰AC 连接:https://www.jianshu.com/p/d2a9d8e59ba9 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。

相关文章
相关标签/搜索