可以根據需要將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的提交記錄,而后者會!
?