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

 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

参考文章

Git 工具 - 储藏(Stashing)



作者:陈琰AC
链接:https://www.jianshu.com/p/d2a9d8e59ba9
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

 

转载于:https://my.oschina.net/newchaos/blog/3020164

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值