簡體   English   中英

如何通過其SHA1哈希值重新編寫Git提交?

[英]How to reword a Git commit by its SHA1 hash?

我已經創建了帶有要修改的提交消息的提交。 我尚未發布提交,因此可以安全地重寫歷史記錄。 我可以使用git log找到它,所以我知道它的sha1哈希。 如何快速編輯提交?

您可以檢出有問題的提交,修改其消息,然后手動將其重新設置為分支:

$ git checkout FIRST_COMMIT_SHA
$ git commit --amend
$ git rebase HEAD THE_BRANCH_YOU_CAME_FROM

此git別名將自動執行此過程:

reword = "!f() { branch=`git symbolic-ref --short HEAD`; git checkout $1; git commit --amend; git checkout $branch; }; f"

要將其添加到您的~/.gitconfig

$ git config alias.reword "!f() { branch=`git symbolic-ref --short HEAD`; git checkout $1; git commit --amend; git checkout $branch; }; f"

然后像這樣使用:

$ git reword SHA1_OF_THE_COMMIT_TO_BE_REWORDED

積分:

或者,可以通過使用rebase命令並提供--root標志來完成對初始提交消息的修改。 另外,您將需要指定交互模式,並對第一次提交使用edit ,如下所示:

git rebase -i -root

// Specify 'edit' for the first commit.

// Amend first commit message here.
git commit --amend

有關--root標志的更多詳細信息,請參見此處

另外,如果要修改的消息的提交位於您正在處理的分支中,則也可以使用交互式rebase輕松解決該問題。 只需找到相應的短SHA-1並指定edit以允許修改其提交消息即可。

暫無
暫無

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

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