背景

  • 工作中commit注释信息是有规范的,本地有个检测注释规范的钩子,它会拦截注释信息不符合规范的push操作

    笔者折腾了很久,最后选择先copy文件,删了本地的仓库然后再重新拉仓库,copy文件进去解决了此问题(因为当时在测试阶段,比较紧急,想着快速解决先)

  • 但事后我发现,这样的效率会很低,于是乎在网上搜索这种未推送到远程仓库的注释信息是否可以修改,于是乎写了此文章

直接用sourceTree的软合并

  • ① 选择除了已提交但未推送的最前界面,然后选择【重置当前分支到此次提交】
    在这里插入图片描述
  • ② 选择软合并
    在这里插入图片描述
  • 重新提交这些未推送到远程仓库的文件

git rebase -i命令的修改前提

  • 请一定要记住,重要的事情说三次!!!
    • 已提交但未推送到远程仓库的commit信息!
    • 已提交但未推送到远程仓库的commit信息!
    • 已提交但未推送到远程仓库的commit信息

该命令修改commit信息,不是在原有的commit结点上修改的,而是用一个新的节点替换原来节点,所以修改后commit id是不同

commit历史记录

在这里插入图片描述

修改最近的一次提交

图形化工具sourceTree

  • 点击提交 => 修改最后一次提交
    在这里插入图片描述

通过git commit --amend

  • git命令行
    • ① 在需要修改的未push已commit的分支,输入命令git commit --amend
      在这里插入图片描述

    • ② vim编辑器

      • 先按i进入编辑模式,然后修改注释信息
      • esc退出编辑模式
      • shift + :wq保存且退出
    • ③ git log查看状态
      在这里插入图片描述

    • ③ 在sourceTree中刷新分支再查看状态

      • 未刷新的图形化界面
        在这里插入图片描述
      • 已刷新的图形化界面
        在这里插入图片描述

非最近一次提交

git命令行模式

  • ① 输入git rebase -i HEAD~2(此修改仅针对已提交但未推送的注释信息)
    在这里插入图片描述

  • ② 此处关注reword和edit的不同:将需要修改的注释的pick替换为reword(缩写r)

    reword:允许您更改,但仅能修改注释,不能修改内容
    edit:允许您更改注释和内容

    在这里插入图片描述

  • ③ 替换后保存退出(:wq),然后会进入到另一个界面,仅需要修改相应的注释信息即可
    在这里插入图片描述
    在这里插入图片描述

  • ④ git log查看状态
    在这里插入图片描述

  • ④ 刷新sourcetree查看修改的注释信息(强调仅针对已提交未推送的注释信息
    在这里插入图片描述

    在这里插入图片描述

其他

  • 若是修改非最近一次的注释信息,将pick替换为edit

可参考,苍枫露雨:git rebase -i命令修改commit历史

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐