一、合併遠程倉庫上的提交記錄
在git管理中我們有些時候經常會遇到(這是最後一次提交了,這一定是最後一次的了,這肯定是最後一次了,打死不改了。。。)然後在不斷的提交代碼中導致我們的日誌量雍餘處理一個相似的問題提交記錄,當最後解決好了,看之前的記錄很不好看,想要合併一下,怎麼處理呢,這裏我們使用git命令實現一下:
首先在分支上創建了3個提交記錄,如下圖:
合併提交記錄
假設需要合併這3個提交記錄,執行命令git rebase -i HEAD~3
會有如下提示:
pick
是rebase時的指令,具體我們還可以使用如下指令:
- 選擇pick指令,git會應用這個提交,以同樣的提交信息(commit message)保存提交
- 選擇reword指令,git會應用這個提交,但需要重新編輯提交信息
- 選擇edit指令,git會應用這個提交,但會因爲amending而終止
- 選擇squash指令,git會應用這個提交,但會與之前的提交合並
- 選擇fixup指令,git會應用這個提交,但會丟掉提交日誌
- 選擇exec指令,git會在shell中運行這個命令
接下來,如果我們修改提示文件(按英文鍵盤i進入編輯狀態,將想要忽略的的前面的pick修改爲s):(其中s 表示的是squash,也可以全寫使用,同樣的效果)
pick 3e60dd4 創建合併提交記錄
s 627c7d7 修改合併提交記錄
s 3a259d9 完成合並提交記錄
修改後按esc推出編輯,:wq保存修改。 會有如下提示:
如果我們不想修改任何信息,保存(:wq)即可,也可以修改最終的提交信息後再保存。
如果合併有衝突,在解決衝突後需要輸入:
git add .
git rebase --continue
如果不想合併了,放棄合併的指令是:
git rebase --abort
然後提交:git push -f
然後我們就可以看到遠端和本地的分支記錄已經合併操作完成合爲一個記錄
然後我們再看下這時的git history:
* 44c536b - (HEAD -> feature) 合併提交記錄完成 (4 minutes ago) <Blackfat>
可以看到3條提交記錄,已經合併成了一條記錄,並且修改了最終的提交信息。