我不想更改已被推送的提交消息,而不是最后一次提交。 正如git文档建议我刚刚完成了以下的rebase:
bot.MessageReceived = func(bot *MessengerBot, evt Event, opts MessageOpts, msg ReceivedMessage) {
log.Println("works!", msg)
}
然后按如下方式编辑结果:
rebase -i HEAD~2
然后成功保存了提交列表文件,之后编辑了重写的提交,如下所示:
reword e499d89 some thig been done
pick 0c39034 some other thing been done
我编辑了提交消息并将其保存,但毕竟git log显示git提交及其消息没有变化。
最后问题是由于提交消息文本,由于问题跟踪器和git服务器的集成,我们在任何提交开始时出现明显的标志后添加问题ID,因此提交将如下所示:
some thig been done
#some comments here
-->list of changelist here
然后在编辑提交消息的最后阶段,整个提交消息被解释为另一个注释行(我想):
#123 some thing been done
因此,只需在尖锐符号前添加空格即可解决问题并创建新提交:
#123 some thig been done
#some comments here
-->list of changelist here
P.S:我不知道它是否可以被称为git的错误?!
答案 0 :(得分:0)
通过所有操作后:重写 - >输入新的提交消息 - >保存文件 - >关闭文件
你应该强制推送修改后的提交来更改提交历史记录:
$ git push --force
答案 1 :(得分:0)
假设提交日志为A-B-C-D-E<-master
,并且您想要修改C的提交消息。
git checkout master
git reset C --hard
git commit --amend
#modify the change commit message, save and quit
git cherry-pick C..E
#or git cherry-pick D E
#or git cherry-pick D;git cherry-pick E
git push origin -f master:master
如果其他人克隆或获取了您之前的master
,则需要通知他们将master
更新为最新版本。
假设他们将本地master
设为A-B-C-D-E-F-G
。
git fetch origin master
git reset B --hard
git rebase FETCH_HEAD
git cherry-pick F G