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

如何修改Git中的特定提交消息?,git,atlassian-sourcetree,Git,Atlassian Sourcetree,我正在尝试在中更改提交消息,但找不到该选项的位置。它还没有被推进 如何在SourceTree或命令行中修改旧提交的消息?没有这样做的功能,因为git如何在内部工作,每次提交都有一个sha1密封 但你可以: 如果消息是最后提交的消息之一,请执行“修改” 对每个要重写提交消息的提交执行一个名为“rebase interactive”的git rebase-i,并选择“reword”(或“r”) 使用git“notes”在现有注释旁边加入新注释(但处理它并不简单…) 假设分支类似于A-B-C-D-E

我正在尝试在中更改提交消息,但找不到该选项的位置。它还没有被推进


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

没有这样做的功能,因为git如何在内部工作,每次提交都有一个sha1密封

但你可以:

  • 如果消息是最后提交的消息之一,请执行“修改”

  • 对每个要重写提交消息的提交执行一个名为“rebase interactive”的git rebase-i,并选择“reword”(或“r”)

  • 使用git“notes”在现有注释旁边加入新注释(但处理它并不简单…)


假设分支类似于
A-B-C-D-E
,并且您想要修改C。下面是我更喜欢的一种解决方案:

git reset C --hard
#do some changes and add
git commit --amend
git cherry-pick C..E
#or git cherry-pick D E
  • 使用
    git reflog
    查找该提交,然后查找其sha id
  • 要进行该提交,请使用

    git reset——硬sha id
    (如果不想保留当前状态的更改)

    或,

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

  • 现在做一个提交——修改提交

  • 现在,检查您要修改的提交是否已被推送

    如果,,则执行重基并推动它

       `git push ` and revert back your head to where it was earlier using its sha-id
    
    如果不执行上述步骤,您的分支将从远程分支分支,您将在
    git状态中看到这一点

    否则,只需使用其sha id恢复到提交


  • 看看这个具体的答案: