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

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

在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。

首先假设我们有3个 commit

git-log-origin.png

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

git-rebase-i.png

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

git-rebase-edit.png

可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由前方的命令名称、commit hash 和 commit message 组成。

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

pick 的意思是要会执行这个 commit

squash 的意思是这个 commit 会被合并到前一个commit
我们将 c4e858b5 这个 commit 前方的命令改成 squash 或 s,然后输入:wq以保存并退出

git-rebase-squash.png

这是我们会看到 commit message 的编辑界面

git-rebase-commit-message.png

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

git-rebase-commit-message-combination.png

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

git-rebase-log-new.png

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

作者:_Ryeeeeee

链接:
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://blog.51cto.com/chenxiaolong/2086006

你可能感兴趣的文章
USI和USCI的区别
查看>>
Docker Volume 之权限管理(转)
查看>>
NOIP2013积木大赛
查看>>
python基础——错误处理
查看>>
jackson简单使用,对象转json,json转对象,json转list
查看>>
将NuGet配置到环境变量中
查看>>
git pull 和本地文件冲突问题解决
查看>>
编写高质量代码:改善Java程序的151个建议(第8章:异常___建议114~117)
查看>>
用php编写我的第一段代码:hello world
查看>>
算法笔记_005:堆排序问题【变治法】
查看>>
MongoDB之TextSearch简介
查看>>
ios10 no route to host
查看>>
poj 1659 Frogs' Neighborhood 度序列可图化 贪心
查看>>
小组聚餐小记
查看>>
机器学习笔记十三:Ensemble思想(上)
查看>>
BZOJ 3460 Jc的宿舍
查看>>
ubuntu 工作区切换快捷键设置
查看>>
Django virtualenv Apache2 mod_wsgi
查看>>
推荐五个最佳编程字体
查看>>
在CentOS6上 ArcSDE for Oracle11gR2安装与配置
查看>>