可以根据需要将pick参数,改变为下面代表不同作用的参数;这样就可以对节点C和D进行不同的操作了。比如:
pick:默认参数,表示不对提交节点进行任何操作,直接应用原提交节点。不创建新提交;
reword:应用复制过后的原提交节点,但是可以编辑该节点的提交信息。通过这个参数,可以修改特定提交的提交信息。会创建新的提交;
edit:应用复制过后的原提交节点,会在设置了该参数的补丁上停止rebase操作。待修改完该补丁后,调用git rebase --continue继续进行rebase。会创建新的提交;
squash:将新基点后面的全部提交节点进行合并,也就是将这里的C和D两个节点进行合并。会创建新的提交
rebase注意事项
不要对master分支执行rebase,否则会引起很多的问题(master一定是远程共享的分支);
一般来说,执行rebase的分支都是自己的本地分支,千万不要在与其他人共享的远程分支上使用rebase;
这不难理解,远程分支上的代码可能已经被其他人克隆到本地了,如果通过rebase修改了远程分支的提交历史,这样其他人每次拉取代码到本地时,就都需要进行复杂的合并。
所以,本地的非master分支合并时推荐使用git rebase,其他分支的合并推荐使用git merge;
注意:git merge和git rebase的显著区别是,前者不会修改git的提交记录,而后者会!