当前位置:   article > 正文

git合并commit_git 合并commit

git 合并commit

在开发一个功能或者修复一个bug时,有时会commit多次代码,这时为了commit历史的完美,会想将多个commit合并为一个,想要实现这个目标,就需要用到 git rebase ,下面记录操作方法,留作笔记。

浏览commit

在合并commit之前,需要先查看commit历史,确定我们需要合并的commit范围。

最通用的方法是 git log

示例:(上下箭头或者滑动可以控制内容滚动

xwd@xwd-OptiPlex-7060:~/projects/ai/ai-tiger$ git log
commit 047a3c26864eb204779a231fe49bcda9d260ef62 (HEAD -> 1.3.2, origin/1.3.2)
Author: xingweidong <xingweidong@xkw.cn>
Date:   Fri Jun 17 09:17:41 2022 +0800

    commit 5

commit b23f0d7558be752f8f82aa738d4ccd3574f83ade
Author: xingweidong <xingweidong@xkw.cn>
Date:   Fri Jun 17 09:17:18 2022 +0800

    commit 4

commit fbd6ad0e6b05d47e9bbe08c43ca7cfda019ec4b6
Author: xingweidong <xingweidong@xkw.cn>
Date:   Fri Jun 17 09:17:05 2022 +0800

    commit 3

commit a1f7193e4dd642abe748f4b6a65962e95125015b
Author: xingweidong <xingweidong@xkw.cn>
Date:   Fri Jun 17 09:16:21 2022 +0800

    commit 2

commit b92721896dd1667af7c158936c6c9fe0979a45aa
Author: xingweidong <xingweidong@xkw.cn>
Date:   Fri Jun 17 09:16:08 2022 +0800

    commit 1

commit b76386ba5adcbe7db5fff14c8bd9b4a9945c881c (origin/master, origin/HEAD)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

如果使用gitlab,按照下图步骤查看commit历史:
在这里插入图片描述
在这里插入图片描述

如果使用github,按照下图步骤查看commit历史:
在这里插入图片描述
在这里插入图片描述

合并commit

这里以上面的commit 1~5 为例,进行说明。

示例操作系统为Ubuntu,如果使用macos,编辑操作同vi,windows系统类似。

例如现在要合并commit 3~5,使用命令:

git rebase -i a1f7193e
  • 1

-i 代表交互式操作,a1f7193e 是commit2的id,一般取前7位或者更多即可。

输出如下:

在这里插入图片描述
从图中可以看到,最上面是我们的commit,按照提交先后,从上到下排列。

图中有一些命令,这里我们只需要关注:

  • pick:使用提交
  • squash:使用提交,但融合到前一个提交

只看说明,可能不容易理解,继续看操作,接下来就好理解了。

上图可以直接编辑,将上图修改成下图:

在这里插入图片描述
这里把commit4和commit5前面的pick修改成了s(squash的简写),按 Ctrl + X,出现提示:

在这里插入图片描述
输入y,出现提示:

在这里插入图片描述
按回车键,出现提示:

在这里插入图片描述
到这一步,可以修改提交说明,比如修改成:

在这里插入图片描述
Ctrl + X,出现提示:

在这里插入图片描述
y,出现提示:

在这里插入图片描述
按会车键,结束,回到终端命令行:
在这里插入图片描述
然后提交到远程仓库,执行命令:

git push -f
  • 1

-f 表示强制,受保护的分支不可以强制push。

查看远程仓库,多个commit合并为一个了:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/399455
推荐阅读
相关标签
  

闽ICP备14008679号