玩转git的第6章节:git的smart checkout与force checkout

一  介绍smart chekcout和force checkout

1.1 smart&force的checkout介绍

1.smart  checkout: 把冲突的这部分内容带到目的分支

2.force  checkout:就不会把冲突的这部分内容带到目的分支,但是你在当前分支修改的所有内容都会丢失,就算你再切回来会找不到,需要慎重操作。

3.Do not checkout :是不切分支,继续留在当前分支;

1.2 结论

当前分支修改内容后,进行add,commit操作之后,切换到其他分支,再切回到当前分支,当前分支不会丢代码。所以一定要在当前分支进行add,commit操作后,切换到其他分支。

二  案例操作

2.1 情况1:当前分支不进行commit操作,选择smart checkout

1.假设现在在dev分支,进行修改了文件:AddLog (输出2222),然而没有进行add,commit操作

2.打开commit窗口,但是就是不提交。 就是玩,就是玩,哈哈!

3.此时没有进行commit操作,而要切换到ljf_dev分支,如下提示:

 1.smart  checkout: 把冲突的这部分内容带到目的分支

 2.force  checkout:就不会把冲突的这部分内容带到目的分支,但是你在当前分支修改的所有内容都会丢失,就算你再切回来会找不到,需要慎重操作。

 3.Do not checkout :是不切分支,继续留在当前分支;

4.这次我们选择,默认smart checkout,紧接着弹出:这里选择rollback和cancel都是一样的 

5.现在在ljf_dev分支查看:看到dev分支修改的内容,并没有带过来

6.再切换到dev分支,问题出现了

切换到ljf_dev之前的输出内容:System.out.println("222222"); 丢失了!!!!!!!!!

惊不惊喜,意不意外?????

 2.2 情况2:当前分支不进行commit操作,选择force checkout

1.假设现在在dev分支,进行修改了文件:AddLog (输出2222),没有进行add,commit操作

2.打开commit窗口,但是就是不提交。

 3.此时没有进行commit操作,而要切换到ljf_dev分支,如下提示:

1.smart  checkout: 把冲突的这部分内容带到目的分支

2.force  checkout:就不会把冲突的这部分内容带到目的分支,但是你在当前分支修改的所有内容都会丢失,就算你再切回来会找不到,需要慎重操作。

3.Do not checkout :是不切分支,继续留在当前分支;

4.这次我们选择,默认force checkout,成功切换到ljf_dev,可以看到,dev分支修改内容没有带过来

 5.再切换到dev分支:问题也出现了

切换到ljf_dev之前的输出内容  System.out.println("222222"); 丢失了,!!!!!!!!!!!!!

 

  2.3 情况3:当前分支进行commit操作

1.这次修改后,进行提交之后,再切换分支。

2.进行commit提交操作 

 3.成功提交后:切换到ljf_dev, 没有任何提示框,成功切换到ljf_dev分支

4.然后再切回dev分支。切换分支前的内容还在。 

结论:当前分支修改内容进行add,commit操作之后,切换到其他分支,再切回到当前分支,当前分支不会丢代码。 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值