簡體   English   中英

如何在 Git 中修改特定的提交消息?

[英]How to amend a specific commit message in Git?

我正在嘗試更改SourceTree中的提交消息,但找不到選項在哪里。 它還沒有被推送。

如何在 SourceTree 或命令行中修改舊提交的消息?

沒有功能可以做到這一點,因為 git 內部如何工作,一個 sha1 密封每個提交。

但你可以:

  • 如果消息是最后一次提交,請執行“修改”。

  • 做一個git rebase -i也命名了一個 rebase 交互,並為你想要重寫提交消息的每個提交選擇“reword”(或“r”)。

  • 使用 git 'notes' 在現有評論旁邊加入新評論(但處理它並不簡單,因為您必須顯式推送注釋並查詢它們才能看到它們......)

假設分支類似於ABCDE ,並且您想修改 C。這是我更喜歡的一種解決方案:

git reset C --hard
#do some changes and add
git commit --amend
git cherry-pick C..E
#or git cherry-pick D E
  1. 使用git reflog找到那個提交,然后找到它的 sha-id
  2. 要進行該提交,請使用

    git reset --hard sha-id (如果您不想保留當前狀態的更改)

    或者,

    使用git reset --soft sha-id (如果你想保留更改)

  3. 現在做一個提交——修改提交.....

  4. 現在,檢查您正在修改的 commit 是否已經被推送,

    如果,,然后做一個變基並推動它......

     `git push ` and revert back your head to where it was earlier using its sha-id

    如果您不執行上述步驟,您的分支將與遠程​​分支不同,您將在git status中看到

    否則,只需使用其 sha-id 恢復到您的提交

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM