侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

git - 合并提交

barwe
2021-08-09 / 0 评论 / 0 点赞 / 766 阅读 / 670 字
温馨提示:
本文最后更新于 2023-06-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

合并最近的 n 个提交

git lg 打印的第 n+1 行的提交上面的 n 个提交就是待合并的所有提交:

* f473d58 - ...
* ba98618 - ...
* 0e43055 - ...
* 4d20bec - ...
* 232ee7f - ...

如果要合并最近的两个提交,即 f473d58 和 ba98618,使用最近的第三个提交作为参考:

git rebase -i 0e43055

0e43055 这个提价不参与合并!

执行 rebase 之后,将第一个之后的提交标志由 pick 改为 s:

pick 3ca6ec3   '注释**********'
s 1b40566   '注释*********'
s 53f244a   '注释**********'

保存退出时可能会发生冲突。如有冲突,解决冲突后

git add .
git rebase --continue

使用 git rebase --abort 放弃合并。

如果没有冲突,或者冲突已经解决。在出现的窗口中修改提交信息即可。

合并中间几个提交

假设按最近提交事件排序:

ID4
ID3
ID2
ID1: init

如果需要合并 ID2 和 ID3,就以 ID1 作为起点。执行

git rebase -i ID1

进入编辑器:

pick ID2
pick ID3
pick ID4

常用指令:

  • p or pick: 保留该提交
  • s or squash: 保留该提交的修改,但是将提交合并到上一个提交中
  • r or reword: 保留该提交,并且修改提交日志
  • e or edit
  • f or fixup: 行为类似于 squash,但是丢弃该提交的日志
  • d or drop: 移除该提交
  • ……

合并 ID2 和 ID3,相当于将 ID3 合并到它的上一个提交 ID2 中,因此只需要将 ID3 的操作指令改为 s 即可。

0

评论区