站内关键词自然排名优化制作图片的免费软件
文章目录
- 需求
- 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 信息


