文章目錄
- 需求
- Rebase / Pick / squash
- Vim 的快速全局字符串替換
需求
我想把如下的提交 commit,變成一個 Commit,并且合并這些 Commit 的消息到一個節點
Rebase / Pick / squash
我合并到 5e59217
這個hash
上,這樣合并后會保留兩個 Commit
git rebase -i 5e59217
然后,痛苦的事情來了,我需要保留第一條的 pick
,其他的 Commit
前面都要變成 squash
,也可以簡寫成 s
pick 8a1e029 chore: save2
pick 133ac18 1
pick 32fe281 2
pick 779ecf8 3
pick dd3b48b 4
pick c857685 5
pick f8a6eb1 6
pick 4bd39c4 7
pick d242a45 8
pick b17d658 9
pick d58f74d 10
什么是
squash
?
Vim 的快速全局字符串替換
如果在插入模式的話,按一下 ESC
,然后按一下 :
冒號進入命令模式,之后輸入
:%s/pick/s/g
即可替換所有 pick
為 s
之后再進入編輯模式把第一行改成 pick
,然后合并即可
最后合并的節點就只剩兩個了,其中最新的節點commit
包含之前所有的 commit
信息