前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git rebase 命令详解

git rebase 命令详解

作者头像
很酷的站长
发布2022-12-05 16:16:18
4.4K0
发布2022-12-05 16:16:18
举报
文章被收录于专栏:站长的编程笔记
1. git rebase 介绍

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

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

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

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

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

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

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

代码语言:javascript
复制
git rebase -i HEAD~3

也可以使用

代码语言:javascript
复制
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 个提交记录

代码语言:javascript
复制
git rebase -i HEAD~4

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

源码下载站

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. git rebase 介绍
  • 2. 将多个 commit 合并为一个 commit
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档