如何修改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 idgit 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恢复到提交
看看这个具体的答案: