git修改已经pus的commit信息

背景

在使用git提交代码时,会遇到commit message 写错的情况。

  • 本地commit message出错
    • 使用了git commit 而没有将代码push,
    • 在向远程服务器push的时候,由于远程服务器的格式限定导致push错误,需要修改git commit信息才能提交完成
  • 提交到远程服务器上后,发现commit 出错

1、查看 git日志

git log

2、确定那些commit是需要修改的

最近commit顺序
  • 如果想修改最近的commit message ,可以使用git rebase来制定, ``HEAD~3表示最新的三条,如上图所以的顺序
git rebase -i HEAD~3
  • 或者可以使用每次 commit 生成的哈希值 SHA来定位,如想修改图上的第二条记录,可以使用
git rebase -i 72b555b763d47e2b02f7938765160dd0d414c376

# 或者使用简码

git rebase -i 72b555b7

大多数情况下简码唯一时,他们是等效的

  • 现在以修改最新的前三条 commit为例 git rebase -i HEAD~3
修改commit message
  • 可以看到顶部有三列, command、SHA-1 commit message

    • 如果需要修改某一个 commit ,就把它前面的 pick 改成 edit
    • 其他地方保持不变
    • 现在修改第2个 commit message
修改commit message
  • 修改完成之后,保存修改

3、修改 commit message

  • 讲过上面的步骤,可以看到


    保存需要修改的commit后
  • 使用git commit --amend 修改每个 commit

    修改commit 信息

  • 修改完 commir message 后,使用 git rebase --continue 提交

    修改完成保存信息

  • 如果后面还有记录,重复上面的步骤

    • 使用 git commit --amend 修改提交
    • 使用 `` git rebase --continue提交修改

4、更新到远程服务器

  • 强制更新到远程服务器
git push origin master -f
  • 为什么要强制 push?
    • 如果不使用 -f 操作,那么我们的 edit 会添加到commit后面,而不是更新原来的 commit


      git log 顺序

可以看到 commit message 已经成功更新

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容