如何更改最新或較舊的 Git 提交的消息

永久連接: https://shudong.wang/10620.htmlhtml

使用 Git 時,可能會遇到須要編輯提交消息的狀況。作出更改的緣由有不少,例如,修正了錯字,刪除了敏感信息或添加了其餘信息。linux

本指南說明了如何更改最新或較舊的 Git 提交的消息。webpack

更改最近的提交

git commit --amend 命令容許您更改最新的提交消息。git

未推送的提交

要更改還沒有推送到遠程存儲庫的最新提交的消息,請使用該 --amend 標誌再次提交。web

  1. cd 到終端中的存儲庫目錄。json

  2. 運行如下命令以修改最新提交的消息:webpack-dev-server

    git commit --amend -m &#34; New commit message. &#34;`</pre></div>
    複製代碼

    該命令的做用是用新的覆蓋新的提交。 該 -m 選項容許您在不打開編輯器會話的狀況下在命令行上編寫新消息。編輯器

    在更改提交消息以前,您還能夠添加之前忘記的其餘更改:spa

    `git add .
    git commit --amend -m "New commit message."`

    推送提交

    被修改的提交是具備不一樣 SHA-1 的新實體。先前的提交將再也不存在於當前分支中。命令行

    一般,您應該避免修改已經推送的提交,由於這可能會給基於此提交工做的人們帶來麻煩。在更改推送的提交以前,最好先諮詢您的開發人員。

    若是更改了最近推送的提交的消息,則必須強制推送它。

  3. 導航到存儲庫。

  4. 修改最新的推送提交的消息:

    `git commit --amend -m " New commit message. "`
  5. 強制推送以更新遠程存儲庫的歷史記錄:

    `git push --force branch-name`

    更改較早或屢次提交

    若是須要更改較舊或屢次提交的消息,則可使用交互方式 git rebase 來更改一個或多個較早提交。

    rebase 命令將重寫提交歷史記錄,強烈建議不要對已經推送到遠程 Git 存儲庫的提交進行從新整理。

  6. 導航到包含要更改的提交消息的存儲庫。

  7. 鍵入 git rebase -i HEAD~N ,其中 N 是執行基礎更改的提交次數。例如,若是要更改第 4 次提交和第 5 次最新提交,請輸入:

    `git rebase -i HEAD~5`
    該命令將在[默認的文本編輯器中](/linux/how-to-use-nano-text-editor/)顯示最新的 `X` 次提交:
    `pick 43f8707f9 fix: update dependency json5 to ^ 2.1.1    pick cea1fb88a fix: update dependency verdaccio to ^ 4.3.3    pick aa540c364 fix: update dependency webpack-dev-server to ^ 3.8.2    pick c5e078656 chore: update dependency flow-bin to ^ 0.109.0    pick 11ce0ab34 fix: Fix spelling.
    # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)`
  8. 移至要更改的提交消息的行,並替換 pickreword

    `reword 43f8707f9 fix: update dependency json5 to ^ 2.1.1    reword cea1fb88a fix: update dependency verdaccio to ^ 4.3.3    pick aa540c364 fix: update dependency webpack-dev-server to ^ 3.8.2    pick c5e078656 chore: update dependency flow-bin to ^ 0.109.0    pick 11ce0ab34 fix: Fix spelling.
    # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)`
  9. 保存更改並關閉編輯器。

  10. 對於每一個選定的提交,將打開一個新的文本編輯器窗口。更改提交消息,保存文件,而後關閉編輯器。

    `fix: update dependency json5 to ^ 2.1.1 `
  11. 強制將更改推送到遠程存儲庫:

    `git push --force branch-name
    

結論

要更改最新的提交消息,請使用 git commit --amend 命令;使用 git rebase -i HEAD~N 來更改舊的或多條提交消息。

通常不要修改推送的提交,由於它可能會給您的同事帶來不少問題。


做者博客

2019-10-21-19-20-20
相關文章
相關標籤/搜索