Git 更新 commit 的内容和多个 commit 合并


场景1

有时候我们发现 commit 写的不好,想要更改当前分支最近一次的 commit 的内容,我们可以使用:

1
git commit --amend

场景二

既然可以更改最近一次的 commit,那可能有些人就想要在当前分支下前几次的 commit 内容进行更改或者进行 commit 合并,那我们需要怎么做呢?方法如下:(注意此操作最好是在自己维护的分支上弄,多人开发的分支就不太适合)

使用git rebase -i xxxx,这里的 i 指的是交互的意思

现在项目 commit 如下

我现在想要更改第二个 commit 的内容,那我需要知道当前要修改的 commit 的父亲的 id,也就是 init game 的 commit id 1801cf5,然后git rebase -i 1801cf5

当前是 pick,我们需要使用 reword 来更改第二个 commit 的内容

保存退出,出现

修改 commit 内容,然后退出,出现

git log —oneline 查看

成功添加.号

场景3

现在我们想要把第二个 commit 和第一个 commit 这两个连续的 commit 进行合并,我们可以这样:

同样使用git rebase -i 1801cf5,将第二个 pick 改为 s(squash),这样可以合并到上一个commit

保存退出

修改成

保存退出

git log —oneline 查看

成功合并。

场景4

现在有人又有个疑惑,如果我是相隔的 commit,但是我想将相隔的 commit 的内容进行合并,那又需怎么做呢?

还是以下面这个为例子

现在我们想将第一个 commit 的内容和第三个内容进行合并,这里你可能你比较疑惑,第三个 commit 的上一个 commit 是没有的,那怎么用 rebase 呢?我们需要记下第三个 commit 的 id,输入git rebase -i 1801cf5

目前只有两个,没有 init game 的 commit id,我们需要将这个 commit id 添加上去(我们可以不用写commit 的内容):

将相关要合并的 commit 写在一起:

保存退出。按照之前的步骤即可。

-------------本文结束感谢您的阅读-------------

本文标题:Git 更新 commit 的内容和多个 commit 合并

文章作者:shenzekun

发布时间:2019年03月03日 - 22:44

最后更新:2019年03月03日 - 22:45

原始链接:http://www.shenzekun.cn/Git-更新-commit-的内容和多个-commit-合并.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

您的支持将鼓励我继续创作!