Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase (4)

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

 

经过一系列解决冲突的操作,最终我们的rebase操作是成功的,会提示下方的 Successfully。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

交互式rebase操作成功后,接下来我们来看一下当前分支的情况,,从结果中我们不难看出:

bugFix 分支上的提交已经变基到了master分支上。

“change aa.text 04”的提交已经被移除了。

“change aa.text 01” 和 “change aa.text 02” 的提交顺序进行了交换。

并且 "create aa.text" 的log变成了 "create aa.text reword"

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

 

4、交互式rebase的squash操作

接下来我们来看一下squash的操作,下方我们会在当前所在分支和上次提交上执行squash操作,其对应的命令的为:git rebase -i HEAD~1,如下所示:

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

我们对该操作执行squash命令,如下所示,编辑完进行保存即可。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

保存后会出现下方的操作,目的是用来编辑两次提交合并后的commit message 的。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

编辑完保存即可,下方就是我们进行上述操作后所对应的相关信息。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

 

5、交互式rebase的另一个示例

接下来我们来看一下另一个交互式rebase的示例,完成下方的目标,我们需要做下方几步:

首先我们通过交互式rebase将caption变基到master分支上,在变基操作时交换 C2 和 C3的位置。

然后通过 git commit --amend 往 C2 上追加提交内容。

最后再通过 git rebase -i 操作将C2和C3进行交换。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

  

 

下方就是对应的具体命令操作:

首先在caption分支上执行 git rebase -i master, 将caption分支通过交互式rebase的方式变基到master分支。

在交互式变基时,修改了C2和C3的提交顺序。

然后在通过git commit -amend 操作往C2上追加了一些修改。

然后再通过git rebase -i master , 将C2和C3进行交换回来。

最后将master使用git rebase 操作进行快速移动到caption上。

  

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdzwj.html