一、使用情况

        有时候我们修改了一个问题,commit之后发现还需要优化,又修改了多次完成,但是commit了N多次,这时候最好将几条commit合并。
        总有人问为啥合并,bug都修好了,也不耽误使用?对,不耽误功能,耽误别人看(狗头),都是搬砖的,都不容易。

二、使用方法
1、查看提交日志

git log : 查看完整的日志内容,有commit的HEAD,有提交人Author , 提交时间Date和注释内容 。
git log --pretty=oneline --abbrev-commit: 查看日志简略内容,一行显示commit。
git rebase 合并多条commit

2、合并命令

git rebase -i HEAD~3:合并最近的三条的commit
git rebase -i c290bf3 918c410: 合并 c290bf3 ~ 918c410 之间的commit 。
通过git log可以知道,上面两个合并命令执行之后的结果相同,都如下。

  • 上面是要编辑指令的部分
  • Commands:是修改指令的说明部分
    git rebase 合并多条commit
缩写 全写 命令说明
p pick 保留该commit
r reword 保留该commit , 但是要修改commit 的注释信息
e edit 保留该commit , 但是要停下来修改该commit(不仅仅可以修改注释信息)
s squash 该 commit 和前一个 commit 合并
f fixup 类似squash , 该commit 和 前一个commit 合并,但是不保留该commit的注释信息
x exec 执行shell命令
d drop 丢弃该commit
3、编辑指令
  • 输入i ,进去insert模式(终端最下面会出现INSERT)
    git rebase 合并多条commit
  • 编辑如下,我的需求是将 修改bug 的 两条commit合并到 修改XXX功能 中。
    git rebase 合并多条commit
  • 修改完成后按esc,退出编辑模式,输入:wq保存编辑。
4、推送到远程
  • 再次查看一下log日志,合并成功!!
    git rebase 合并多条commit
  • 使用git push -f强制将commit合并推送到远程。

相关文章:

  • 2021-07-31
  • 2021-08-06
  • 2021-06-01
  • 2019-11-15
  • 2022-01-16
  • 2021-10-20
  • 2021-11-02
  • 2021-11-16
猜你喜欢
  • 2021-04-13
  • 2021-09-21
  • 2022-01-19
  • 2021-09-21
  • 2021-10-24
  • 2021-10-12
相关资源
相似解决方案