Git Rebase 高级操作

git rebase 是一个非常强大的命令,目前我常用的是两个功能:

  1. 合并更新分支 跟git merge 差不多,但是不会生成新的合并节点
  2. 操作提交记录,如:修改 commit mssage,或在提交历史中进行交互式合并之前的提交历史

下面我们就来探讨这两种操作

1. 查看提交历史

首先,查看你的提交历史,了解当前的提交情况:

git log --oneline

这将显示提交的简要历史,每个提交前面有一个简短的哈希值和提交信息。

2. 修改 commit mssage

假设你想修改最近的 commit message,可以使用以下命令开始交互式变基:

git rebase -i HEAD~1

在弹出的交互式窗口中修改内容,修改前面的pickr/reword ,保存后提交

在这里插入图片描述

  • rewordr:保留这个提交,但编辑提交信息。

在下面窗口将 message 2修改为 message 2 修改,最后保存提交,ok

在这里插入图片描述

在这里插入图片描述

3. 合并操作历史记录

假设你想合并最近的 3 个提交记录,可以使用以下命令开始交互式变基:

git rebase -i HEAD~3

这里的 HEAD~3 表示从当前 HEAD 开始,向上数 3 个提交。-i 参数表示交互式变基。

4. 编辑提交记录

执行上述命令后,Git 会打开一个文本编辑器,列出你选择的提交记录。编辑器中的内容可能如下所示:

pick 605852a message 1
pick bee2f62 message 2 修改
pick ad61023 message 3

在这里插入图片描述

  • pick:保留这个提交。
  • squashs:将这个提交合并到前一个提交中。
  • rewordr:保留这个提交,但编辑提交信息。
  • edite:保留这个提交,但在这个提交上停下来,允许你进一步修改。
  • dropd:删除这个提交。

假设你想将第二个和第三个提交合并到第一个提交中,可以将编辑器中的内容修改为:

pick 605852a message 1
s bee2f62 message 2 修改
s ad61023 message 3

在这里插入图片描述

保存并关闭编辑器,Git 会开始执行变基操作。如果一切顺利,变基操作将自动完成。

在这里插入图片描述

弹出合并提交信息,Git 会再次打开编辑器,让你编辑合并后的提交信息。编辑完成后,保存并关闭编辑器。

在这里插入图片描述

最后使用git log 查看历史

在这里插入图片描述

5. 解决冲突

如果在变基过程中出现冲突,Git 会暂停变基操作,并提示你解决冲突。解决冲突后,继续变基操作:

git add .
git rebase --continue

如果在某个步骤中需要放弃变基操作,可以使用:

git rebase --abort

这将恢复到变基开始前的状态。

6. 总结

  1. 查看提交历史:使用 git log --oneline 查看提交历史。
  2. 开始交互式变基:使用 git rebase -i HEAD~N 开始交互式变基,其中 N 是你希望合并的提交数量。
  3. 编辑提交记录:在编辑器中选择 squashs 来合并提交。
  4. 合并提交:保存并关闭编辑器,Git 会自动合并提交。
  5. 解决冲突:如果出现冲突,解决冲突后使用 git add .git rebase --continue 继续变基。
  6. 查看结果:使用 git log --oneline 查看合并后的提交历史。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子羽bro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值