记录Sourcetree 基于git rebase修改git提交记录的方法

前言

以前当我git提交信息出现错误的时候,如果是最近的一次提交,我会使用Sourcetree提交选项中的“更正上一次提交”(git --amend)来补充或修改;但如果不是最新的一次提交,事情可能就有点麻烦了,我可能会将错误提交之后的每一条提交都创建补丁,然后再重置(强行合并)到错误的提交,使用“更正上一次提交”修正后,再一条一条应用之前打好的补丁,这一套操作很繁琐,而且可能出现人为错误。
其实上面的一套操作git rebase都给我们提供了封装,简化操作,可以实现对历史提交记录的一些操作,可以实现以下操作:

  • 修改历史提交信息
  • 修改历史提交顺序
  • 合并历史提交
  • 删除历史提交
  • 修改历史提交内容,如插入提交,将一次提交划分为两次等

rebase变基分支的功能本文暂不涉及,这也是基础用法。
下面主要记录在Sourcetree中使用rebase 修改历史提交的方法


一、修改历史提交信息

目标:修改“first commit”为“first commit - changed”

右键需要修改提交的前一条提交,选择“交互式变基xxx的子提交...”,会出现以下页面


图1

双击需要修改的提交的描述,或选中需要修改的提交后点击左下角“编辑信息”,重新编辑提交信息。(也可以同时编辑多个历史提交记录)


图2

依次点击确认即可


图3

二、修改历史提交顺序

目标:交换“first commit”和“second commit”的顺序
  • 同上面第一步,出现如图1界面
  • 鼠标拖动提交为更正的顺序即可
  • 依次点击保存


    图4

    三、合并历史提交

    目标:合并“first commit” 和 “second commit”为一次提交
  • 同上面第一步,出现如图1界面
  • 鼠标拖动提交,使两个提交重叠,如下


    图5

    可修改合并后的描述,点击确定即可


    图6

    四、删除历史提交

    目标:删除“merge first and second commit”提交
    1. 同上面第一步,出现如图1界面
    2. 选中需要删除的提交,点击下面删除按钮,点击确定即可

    五、修改历史提交

    目标:将“merge first and second commit”提交划分为两次提交

    修改的操作相比前面要多一些。

  • 同上面第一步,出现如图1界面

  • 勾选需要修改的提交的“更正提交”选项


    图7

    点击确认,出现分离的HEAD


    图8

    右键HEAD的前一条提交,选择“重置到这次提交”,并进行混合合并


    图9

    这样需要修改的提交的内容就存在于工作区中,重新分次提交


    图10

    点击工具栏“动作”,选择“继续变基”


    图11

    完成


    图12

    总结

    git rebase 命令很强大,但也不能过度依赖。因为它会将修改的历史提交之后的提交一并重新提交,会导致不需要修改的提交的SHA和提交日期一并被修改,可能在某些场景并不适用。



    作者:jason294
    链接:https://www.jianshu.com/p/9e91ed38e74a
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    posted @   dreamw  阅读(320)  评论(0编辑  收藏  举报
    编辑推荐:
    · 记一次.NET内存居高不下排查解决与启示
    · 探究高空视频全景AR技术的实现原理
    · 理解Rust引用及其生命周期标识(上)
    · 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
    · 没有源码,如何修改代码逻辑?
    阅读排行:
    · 分享4款.NET开源、免费、实用的商城系统
    · 全程不用写代码,我用AI程序员写了一个飞机大战
    · MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
    · 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
    · 上周热点回顾(2.24-3.2)
    点击右上角即可分享
    微信分享提示