您的位置:首页 > 其它

Git使用rebase合并多个commit

2017-08-31 13:57 302 查看
原文链接:http://www.jianshu.com/p/964de879904a

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

首先假设我们有3个 commit



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



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



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

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

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



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



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



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



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

作者:_Ryeeeeee

链接:http://www.jianshu.com/p/964de879904a

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: