Git笔记_06_Git更改一个历史提交信息

Git 更改一个历史提交信息的方法

问题

  1. 对于有些时候,我们可能在进行了多次提交之后,查看日志之后发现在前面的某一个版本的提交信息写错了或者是乱码,我们想要重新修改这一个提交记录的提交信息.

  2. 如图所示

    b
    a
    c
    d
    master
    HEAD
    • 这时候我们发现b提交的提交信息出现乱码
    • 我们要修正这个乱码应该怎样做呢?

解决方法

方法1
  1. master指针重置到b的位置

    $ git reset --soft <b>
    
    • 其中<b>为提交b的校验码

    • 执行该命令之后,就变成了

      b
      a
      c
      d
      master
      HEAD
  2. 然后我们在这里新建一个分支

    $ git branch <dev>
    
    • 这之后就变成了

      b
      a
      c
      d
      master
      HEAD
      dev
  3. 然后我们还要将master指向最新的提交版本,也就是d

    $ git reset --soft <d>
    
    • <d>为提交d的校验和

    • 执行该命令之后,就变成了

      b
      a
      c
      d
      master
      HEAD
      dev
  4. 然后切换HEAD指向<dev>

    $ git checkout <dev>
    
  5. 然后在<dev>分支上对最新版本提交做修补提交

    $ git commit --amend
    
    • 执行完毕之后,就相当于

      b(b')
      a
      c
      d
      master
      dev
      HEAD
  6. 然后将master分支变基到dev

    $ git rebase master
    
    • 变基完成之后就成为下图所示

      b'
      a
      c
      d
      master
      dev
      HEAD
  7. 然后快进合并

    $ git merge master
    
    • 快进合并之后就变成了如下所示

      b'
      a
      c
      d
      master
      dev
      HEAD
  8. 至此,对某个历史版本的提交信息的修改就完成了

方法2

  1. rebase最好不要用到已经进行了推送的分支上,所以上面的方法1可以在提交还没有被推送到远程库上的时候可以用
  2. 当然对于已经进行的推送,如果真的需要也可以使用,不过这肯定会拉仇恨,一定要提前通知你的合作者
  3. 综上,我们在进行提交和推送的时候,最好是慎之又慎,最好不要出现上面这样的错误。具体来说
    • 最好每一次提交之后就查看一下提交的日志,确保本次提交没有出现错误。即使出现了错误也能及时使用修补提交
    • 进行推送之前一定要再次查看日志进行确认避免发生上述的错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值