git修改已經(jīng)pus的commit信息

背景

在使用git提交代碼時,會遇到commit message 寫錯的情況。

  • 本地commit message出錯
    • 使用了git commit 而沒有將代碼push,
    • 在向遠程服務(wù)器push的時候,由于遠程服務(wù)器的格式限定導(dǎo)致push錯誤,需要修改git commit信息才能提交完成
  • 提交到遠程服務(wù)器上后,發(fā)現(xiàn)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

大多數(shù)情況下簡碼唯一時,他們是等效的

  • 現(xiàn)在以修改最新的前三條 commit為例 git rebase -i HEAD~3
修改commit message
  • 可以看到頂部有三列, command、SHA-1 commit message

    • 如果需要修改某一個 commit ,就把它前面的 pick 改成 edit
    • 其他地方保持不變
    • 現(xiàn)在修改第2個 commit message
修改commit message
  • 修改完成之后,保存修改

3、修改 commit message

  • 講過上面的步驟,可以看到


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

    修改commit 信息

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

    修改完成保存信息

  • 如果后面還有記錄,重復(fù)上面的步驟

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

4、更新到遠程服務(wù)器

  • 強制更新到遠程服務(wù)器
git push origin master -f
  • 為什么要強制 push?
    • 如果不使用 -f 操作,那么我們的 edit 會添加到commit后面,而不是更新原來的 commit


      git log 順序

可以看到 commit message 已經(jīng)成功更新

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容