在使用 Git 做爲版本控制的時候,咱們可能會因爲各類各樣的緣由提交了許多臨時的 commit,而這些 commit 拼接起來纔是完整的任務。那麼咱們爲了不太多的 commit 而形成版本控制的混亂,一般咱們推薦將這些 commit 合併成一個。git
1,查看提交歷史,git log版本控制
首先你要知道本身想合併的是哪幾個提交,可使用git log命令來查看提交歷史,假如最近4條歷史以下:code
commit 3ca6ec340edc66df13423f36f52919dfa3...... commit 1b4056686d1b494a5c86757f9eaed844...... commit 53f244ac8730d33b353bee3b24210b07...... commit 3a4226b4a0b6fa68783b07f1cee7b688.......
歷史記錄是按照時間排序的,時間近的排在前面。 排序
2,git rebaseget
想要合併1-3條,有兩個方法it
1.從HEAD版本開始往過去數3個版本io
git rebase -i HEAD~3
2.指名要合併的版本以前的版本號方法
git rebase -i 3a4226b
請注意3a4226b這個版本是不參與合併的,能夠把它當作一個座標 d3
3,選取要合併的提交註釋
1.執行了rebase命令以後,會彈出一個窗口,頭幾行以下:
pick 3ca6ec3 '註釋**********' pick 1b40566 '註釋*********' pick 53f244a '註釋**********'
2.將pick改成squash或者s,以後保存並關閉文本編輯窗口便可。改完以後文本內容以下:
pick 3ca6ec3 '註釋**********' s 1b40566 '註釋*********' s 53f244a '註釋**********'
3.而後保存退出,Git會壓縮提交歷史,若是有衝突,須要修改,修改的時候要注意,保留最新的歷史,否則咱們的修改就丟棄了。修改之後要記得敲下面的命令:
git add . git rebase --continue
若是你想放棄此次壓縮的話,執行如下命令:
git rebase --abort
4.若是沒有衝突,或者衝突已經解決,則會出現以下的編輯窗口:
# This is a combination of 4 commits. #The first commit’s message is: 註釋...... # The 2nd commit’s message is: 註釋...... # The 3rd commit’s message is: 註釋...... # Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit.
5.輸入wq保存並推出, 再次輸入git log查看 commit 歷史信息,你會發現這兩個 commit 已經合併了。