博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git合并多个 Commit
阅读量:6154 次
发布时间:2019-06-21

本文共 916 字,大约阅读时间需要 3 分钟。

hot3.png

有的时候我们在代码提交时会提交很多次commit,每次只改一点点,代码review起来和合并master都有一定的成本。 所以合并之前最后将自己分支的多个commit合并,这样便于codereview。

通过git log查看日志

通过rebase -i合并日志

我们需要将 2dfbc7e8 和 c4e858b5 合并成一个 commit,那么我们输入如下命令

其中,-i 的参数指的是不需要合并的 commit 的 hash 值,这里指的是第一条 commit不需要合并, 接着我们就进入到 vi 的编辑模式

可以看到其中分为两个部分:

  • 上方未注释的部分是填写要执行的指令
  • 而下方注释的部分则是指令的提示说明。

指令部分中由前方的命令名称、commit hash 和 commit message 组成。

当前我们只要知道 pick 和 squash 这两个命令即可。

  • pick 的意思是要会执行这个 commit 简写p
  • squash 的意思是这个 commit 会被合并到前一个commit 简写s

我们将 c4e858b5 这个 commit 前方的命令改成 squash 或 s(可以从上向下,除了第一个是p外其他都改成s),然后输入:wq以保存并退出

这是我们会看到 commit message 的编辑界面,这个界面可以设定一个新都commit message信息。

其中, 非注释部分就是两次的 commit message, 你要做的就是将这两个修改成新的 commit message。

输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这两个 commit 已经合并了。

rebase操作之后,可以执行git push origin [分支] -f ,进行强制提交。

注意事项:

如果这个过程中有操作错误,可以使用 git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。

当我们想撤销rebase命令,可以这样:

git rebase --abort

转载于:https://my.oschina.net/u/1000241/blog/1841373

你可能感兴趣的文章
架构师之路(一)- 什么是软件架构
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>