背景
在使用git提交代码时,会遇到commit message 写错的情况。
- 本地commit message出错
- 使用了git commit 而没有将代码push,
- 在向远程服务器push的时候,由于远程服务器的格式限定导致push错误,需要修改git commit信息才能提交完成
- 提交到远程服务器上后,发现commit 出错
1、查看 git日志
git log
2、确定那些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
-
可以看到顶部有三列, command、SHA-1 commit message
- 如果需要修改某一个 commit ,就把它前面的 pick 改成 edit
- 其他地方保持不变
- 现在修改第2个 commit message
- 修改完成之后,保存修改
3、修改 commit message
-
讲过上面的步骤,可以看到
-
使用
git commit --amend
修改每个 commit
-
修改完 commir message 后,使用
git rebase --continue
提交
-
如果后面还有记录,重复上面的步骤
- 使用
git commit --amend
修改提交 - 使用 `` git rebase --continue
提交修改
- 使用
4、更新到远程服务器
- 强制更新到远程服务器
git push origin master -f
- 为什么要强制 push?
-
如果不使用 -f 操作,那么我们的 edit 会添加到commit后面,而不是更新原来的 commit
-
可以看到 commit message 已经成功更新