雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

git rebase 命令详解

2024-10-03 90
1. git rebase 介绍2. 将多个 commit 合并为一个 commit

1. git rebase 介绍


git rebase 最大的作用是可以重写历史(重写提交记录)

合理使用 rebase 命令可以使我们的提交历史干净、简洁 !

rebase 在 git 中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;如果乱用,会给团队其他人带来麻烦

2. 将多个 commit 合并为一个 commit


相信绝对大多数公司都会有这个要求: 每天下班前必须将当天的代码推送到远程库,但是今天在本地做了多次提交记录,你想要将今天的多次提交记录合并为一个提及记录,然后再推送到远程库。此时,使用 git rebase 命令可以实现你的目的

有这样一个仓库,当前有 5 个提交记录,我想要将最后三次的提交记录合并为一个提交记录

使用下面命令进行提交记录的合并,-i, --interactive 参数的作用是以交互式的界面让用户编辑完成合并的操作

git rebase -i HEAD~3

也可以使用

git rebase -i 2402738

执行命令后进入以下界面,修改完成后使用 :wq 保存退出

指令编辑区域: 本次 rebase 操作包含的所有提交,每一个 commit id 前面的 pick 表示指令类型

指令说明区域: 指令类型说明,rebase 的指令类型有以下几种

指令 缩写 描述
pick p 保留该 commit
reword r 保留该 commit,修改该 commit 的注释
edit e 保留该 commit,修改该 commit,不仅仅是注释
squash s 将该 commit 和前一个 commit 合并
fixup f 将该 commit 和前一个 commit 合并,但不保留该提交的注释
exec x 执行 shell 命令
drop d 丢弃该 commit

rebase 指令类型编辑界面修改完成后进入注释修改界面,修改完成后使用 :wq 保存退出

合并成功后的提示

将合并成功后结果推送至远程库时会报错,必须使用 -f 参数进行强制推送才行

刚才我们是将远程库中的多个 commit 合并为一个 commit,下面来测试将本地的多个 commit 合并为一个 commit

合并最新的 4 个提交记录

git rebase -i HEAD~4

话不说多,直接上操作流程图

总结: 合并远程库中的多个 commit 推送时需要强制推送,合并多个未推送到远程库的多个本地 commit,不需要强制推送。平时开发中,合并本地的多个 commit 还比较实用,已推送到远程库中的 commit 不建议轻易的去修改它

更新于:3个月前
赞一波!1

文章评论

评论问答