git rebase (合并代码和整理提交记录)图文详解

这篇具有很好参考价值的文章主要介绍了git rebase (合并代码和整理提交记录)图文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

建议在看这篇文章之前一定要看完:git reset 命令详解 git revert命令详解。
看完上面的文章后,在rebase操作(成功/失误)后还可以进行回退。不至于咱们再去费劲创建那些提交记录。
git rebase 有两种作用

  1. 合并代码
  2. 整理提交记录

合并代码

初始代码分支结构

可以看到有两个分支,2023的分支是在master的基础上建立的,并且已经有过多次提交。master也已经有了后续的一个提交。
git rebase 合并提交,git应用,git

merge合并代码

平时我们大多是使用merge合并代码。操作流程是:

  1. :切换到master分支

    git checkout master
    

    git rebase 合并提交,git应用,git

  2. 将2023的分支合并到master分支上

    git merge 分支名
    

    git rebase 合并提交,git应用,git
    执行merge命令后写上merge的备注,然后保存退出就可以merge成功了。
    效果如下:
    git rebase 合并提交,git应用,git
    可以看到使用merge进行合并是将两个分支通过一个“merge”的新提交记录合并在一起。并且两个分支的提交记录是按照时间顺序排列的。

rebase合并代码

  1. 切换到被合并的分支上,比如:咱们是要将2023分支的代码合并到master上,那咱们切换到2023的分支上

    git checkout feature/2023-07-09-rebase...(分支完整名字)
    
  2. 执行rebase + 合并到的分支的分支名,我们的就是master分支

     git rebase master
    

    结果:

    git rebase 合并提交,git应用,git
    可以看到2023分支(刚刚我们执行rebase的分支上)master的记录和2023原本的提交记录都被拷贝了一份放在后面。

  3. 切换分支到master上(要合并到的分支,别名:目标分支),并merge 2023分支。

     git checkout master
     git merge feature/2023-07-09-rebase...
    

    结果:

    git rebase 合并提交,git应用,git
    可以看到执行了上述命令后,本地master分支在“头像图片”提交记录的后面增加了2023分支的提交记录,并且两个分支并没有生成合并的那一个merge的提交记录。

  4. 推送到远程

    git push
    

    结果:
    git rebase 合并提交,git应用,git
    之后如果想要的话就可以将2023的分支删除掉,以此来保证提交记录的简洁。
    不过很多公司是不允许或者不推荐使用rebase去合并代码的。尽量还是使用merge去合并多个分支的代码更好。

整理提交记录

我先将上面的操作使用reset 退回了,并且在2023分支原有提交的基础上又增加了一个提交记录。现在分支提交记录如下:
git rebase 合并提交,git应用,git

接下来要操作的是2023的分支。

背景-整理提交记录

再上图我们可以看出:2023分支的后三次提交(“第三步”、“第三部解释”、“第三部解释补充”)都属于第三步的。如果可以合并到一次提交中就符合我们强迫症的想法了,还能体现我们技术高超(一次提交就成功了)而且提交记录看着还会整洁不少。

步骤-图文详解

  1. 切换到要整理的分支,并且查看git日志。
    git rebase 合并提交,git应用,git

  2. 执行rebase

    git rebase -i 开始commit 结束commit
    

    注意:“开始commit”是“更上一次的提交记录”,因为rebase命令后面的commit是左开右闭的
    如果结束commit是HEAD的话,可以不写。

  3. 编辑提交记录
    git rebase 合并提交,git应用,git
    上面Commands的意思:
    都是rebase中的可交互命令。

    pick:
    选择保留指定的提交记录。这是最常用的操作指令,将提交记录应用于目标分支。
    
    reword:
    修改指定提交记录的提交信息(commit message)。当您想要修改提交信息时,使用此操作指令。
    
    edit:
    暂停 rebase 过程,以便您可以编辑指定提交记录。您可以在编辑提交记录之后使用 git commit --amendgit rebase --continue 继续 rebase 过程。
    
    squash 或 fixup:
    将指定提交记录合并(squash)到上一个提交记录中,或者使用 fixup 进行类似的操作,并忽略此提交的提交信息。
    
    drop 或 d:
    删除指定的提交记录,从而从 rebase 中排除它们。
    
    exec:
    在 rebase 过程中执行指定的 shell 命令。这允许您在 rebase 过程中执行自定义操作,如自动修改提交。
    
    break 或 b:
    在指定的提交记录之前插入一个断点,以便 rebase 过程暂停,允许您执行其他操作。
    

    下面我们使用的是:squash或者s

    git rebase 合并提交,git应用,git
    我们是将下面两个提交使用squash合并到第一个提交中。注意:整个文档中至少要有一个pick否则就报错了。

    如果报错:

    fatal: It seems that there is already a rebase-merge directory, and
    I wonder if you are in the middle of another rebase.  If that is the
    case, please try
            git rebase (--continue | --abort | --skip)
    If that is not the case, please
            rm -fr ".git/rebase-merge"
    and run me again.  I am stopping in case you still have something
    valuable there.
    

    这个错误表示在之前的 rebase 操作中出现了问题,并且存在一个未完成的 rebase 操作导致了冲突。
    该错误消息指出 Git 在 .git/rebase-merge 目录中找到了未完成的 rebase 操作的相关文件。这可能是由于之前的 rebase 操作未成功完成,或者在 rebase 过程中发生了冲突导致操作中止。
    解决方案:我们使用git rebase --abort 就可以了。

  4. 编辑提交备注

    一开始:git rebase 合并提交,git应用,git

    修改后:

    git rebase 合并提交,git应用,git
    将其余的提交记录删除掉,并修改第一个提交的提示内容。

    修改保存后会出现:

    git rebase 合并提交,git应用,git

  5. 结果:
    git rebase 合并提交,git应用,git
    此时我们可以看到本地的2023分支的rebase合并提交记录已经完成。

  6. 强行推送

     git push --force
    

    git rebase 合并提交,git应用,git
    最终可以看到远程的2023分支也已经完成了rebase文章来源地址https://www.toymoban.com/news/detail-702162.html

到了这里,关于git rebase (合并代码和整理提交记录)图文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git rebase 合并提交

    git log --oneline 查看当前提交记录 git rebase -i HEAD~2 选择最后提交的2条记录进行合并 进入编辑界面,将c865404的 pick 改为 f , 表示向前合并也就是向cc5a54合并 编辑完之后 :wq 保存并退出 git rebase --continue git push --force origin feature/v1.2 推送到仓库 git rebase --abort 取消变基

    2024年02月16日
    浏览(18)
  • git rebase 合并多个提交

    开发过程中,本地通常会有无数次 commit ,可以合并相同功能的多个 commit,以保持历史的简洁。 命令使用 说明: -i(–interactive):弹出交互式的界面进行编辑合并 [commitid]:要合并多个版本之前的版本号,注意:[commitid] 本身不参与合并 例如,如下例子中你想合并前 5 个

    2024年02月07日
    浏览(17)
  • git rebase 合并提交与避免分叉合并

    本文让你熟练使用 rebase,学会以下两种操作,从此拒绝杂乱无章的 git 提交。 你可能出现过对同一处代码进行多次处理的场景。这会导致如下提交记录: 其实,中间的对 b 的3次提交完全可以合并成一次 commit,这个时候 rebase 就很有用了。 step1. 找到想要合并的 commit, 使用 re

    2024年02月15日
    浏览(20)
  • 【git 使用】使用 git rebase -i 修改任意的提交信息/合并多个提交

    修改最近一次的提交信息的方法有很多,可以参考这篇文章,但是对于之前的提交信息进行修改只能使用 rebase。 假设我们想修改下面这个提交信息,想把【登录】改成【退出登录】步骤如下 运行 git rebase -i head~3 打开了一个文本编辑器 -i  【interactive】参数表示进行交互式

    2024年02月21日
    浏览(20)
  • Git 使用 rebase 修改历史提交记录

    运行以下这条命令之后,它会打开一个vim编辑器,我们就可以修改上一次commit时输入的提交信息。 接下来你要是想修改描述信息的话,直接键入: i ,此时进入了输入模式。 可用键盘上下键转到描述所在的那一行,然后进行修改。 修改完成后,按下 Esc  键退出编辑模式,在

    2024年02月02日
    浏览(26)
  • git rebase合并多个commit记录

    在做一个需求的时候,会出现多次提交记录,如下: 其中,发现中间有三次提交的记录一致,是可以合并成一次commit的 下面开始合并: 1.找到要合并的commit 命令 其中 -i 的意思是–interact,即弹出交互式的界面让用户编辑完成合并操作 [startpoint] [endpoint]是前开后闭的区间 [

    2024年02月07日
    浏览(21)
  • git合并代码命令 分支合并代码 cherry-pick merge rebase区别

    1.cherry-pick 需要注意 暂存未提交的更改 暂存更改: 使用git stash或git stash push命令暂存当前工作目录和暂存区的更改。你可以提供一个消息作为参数,以便更容易地识别stash项: 执行cherry-pick: 现在,你的工作目录是干净的,可以安全地执行cherry-pick操作了。找到你想要cherry

    2024年04月12日
    浏览(23)
  • 2、Git使用不完全指南:Git客户端的使用及使用Token认证方式提交代码详解(详细图文)

    本篇介绍如何在Windows、Linux下安装Git客户端以及从远程代码仓库拉取代码。以及介绍2023如何从GitHub上获取Token令牌、使用Pycharm通过Token令牌从本地push上传仓库的方法,用来解决推送代码报Push failed The requested URL returned error:403的错误问题。 Windows 1、 安装 Git 和 TortoiseGit Git 下载

    2024年02月15日
    浏览(31)
  • git rebase与git merge图文详解(一文看懂区别)

    大家在工作中团队开发的时候对于拉取分支和合并代码时就会涉及到两种选择,git rebase与git merge: rebase:变基,会有一个干净的分支,但是对于记录来源不够清晰 merge:合并,git分支看起来比较混乱,但是清楚各个记录的来源与时间节点 推荐:全部使用merge 拉公共分支使用

    2024年01月18日
    浏览(23)
  • git 合并多次提交记录(commit)

    在开发过程中,对于一个完整的功能可能会先后进行多次提交。这种及提交方式不利于与代码走查时或者后期回顾功能点影响范围。为此,应该将多次提交合并为一次提交。 例如当前提交如下: 若我想合并前3次提交即从91bfbb8f599fa0129f28f9c4fd85e9feeca335be到7dbba7b7b46aa47bb57d109cd6

    2024年02月05日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包