Git 壓縮多個 commits 提交
分為三步。最簡單的:
git rebase -i origin/master
1、 選擇提交
1.1、 按個數選擇
基本命令:
git rebase -i HEAD~39
其中 39 是你要壓縮的提交個數,從最近一次往前數。如果你想壓縮沒有同步到遠程的所有提交,有個簡單的方法,直接輸入 git status
查看結果:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 39 commits.
(use "git push" to publish your local commits)
上面結果中的 39 就是我們所需要的個數值。
1.2、 按 hash 值或標籤來選擇
git rebase -i HEAD~39
需要數個數,還有一種方法是提供選擇範圍前一個提交的 hash (壓縮範圍不包括這個提交):
git rebase -i xxyyzz
GIT 的標籤可以替代 hash 值,因此下面這樣也是可以的,如果要壓縮沒有同步到遠程的所有本地提交,這個是最簡單的命令:
git rebase -i origin/master
2、 選擇和壓縮
這時你的編輯器會有彈窗,顯示出你想要合併的提交列表。類似於下面的:
pick xxxxxx done 1
pick yyyyyy done 2
pick zzzzzz done 3
我們需要將除了第一個 pick ,其它的 pick 都改成 s (表示 squash ,壓縮)。可以用 vim 的快速替換,然後再把第一個 pick 改回來。
保存文件後直接退出即可。
3、 創建新的提交
現在 GIT 已經把多個提交壓縮成一個了,然後彈出提交註釋編輯框,默認是所有提交的註釋合起來。可以直接編輯,然後保存退出即可。
Q. E. D.
「其他文章」