如何通过其 SHA1 哈希改写 Git 提交?

Ben*_*ngt 3 git git-rebase git-commit

我创建了一个提交,其中包含要修改的提交消息。我还没有发布提交,所以我可以安全地重写历史。我可以使用 git log 找到,所以我知道它的 sha1 哈希值。如何快速编辑提交?

Ben*_*ngt 5

您可以检出有问题的提交,修改其消息并手动重新设置回您的分支:

$ git checkout FIRST_COMMIT_SHA
$ git commit --amend
$ git rebase HEAD THE_BRANCH_YOU_CAME_FROM
Run Code Online (Sandbox Code Playgroud)

这个 git 别名将自动化这个过程:

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

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

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

然后像这样使用:

$ git reword SHA1_OF_THE_COMMIT_TO_BE_REWORDED
Run Code Online (Sandbox Code Playgroud)

学分: