玩转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操作

玩转git的第6章节:git的smart checkout与force checkout_第1张图片

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

玩转git的第6章节:git的smart checkout与force checkout_第2张图片3.此时没有进行commit操作,而要切换到ljf_dev分支,如下提示:

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

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

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

玩转git的第6章节:git的smart checkout与force checkout_第3张图片

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

玩转git的第6章节:git的smart checkout与force checkout_第4张图片5.现在在ljf_dev分支查看:看到dev分支修改的内容,并没有带过来

玩转git的第6章节:git的smart checkout与force checkout_第5张图片6.再切换到dev分支,问题出现了

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

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

玩转git的第6章节:git的smart checkout与force checkout_第6张图片

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

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

玩转git的第6章节:git的smart checkout与force checkout_第7张图片

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

玩转git的第6章节:git的smart checkout与force checkout_第8张图片 3.此时没有进行commit操作,而要切换到ljf_dev分支,如下提示:

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

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

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

玩转git的第6章节:git的smart checkout与force checkout_第9张图片

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

玩转git的第6章节:git的smart checkout与force checkout_第10张图片 5.再切换到dev分支:问题也出现了

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

 玩转git的第6章节:git的smart checkout与force checkout_第11张图片

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

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

玩转git的第6章节:git的smart checkout与force checkout_第12张图片

2.进行commit提交操作 

玩转git的第6章节:git的smart checkout与force checkout_第13张图片 3.成功提交后:切换到ljf_dev, 没有任何提示框,成功切换到ljf_dev分支

玩转git的第6章节:git的smart checkout与force checkout_第14张图片

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

玩转git的第6章节:git的smart checkout与force checkout_第15张图片

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

 

你可能感兴趣的:(git,git,github)