git:如何以非交互方式更改已提交文件的提交消息?

git:如何以非交互方式更改已提交文件的提交消息?,git,Git,我遇到过这样一种情况,提交的文件会被bug tracker工具检查,一旦它检查了提交消息,就必须更改 所以我的问题是,有没有办法更改已提交到本地git存储库的文件的提交消息 如果您的提交处于提示状态(此后未提交其他更改),您可以: 如果自以下日期起已提交其他更改: git rebase -i <commit-to-change>~ 如果在前面被问到,你可能会赢得很多声誉:通常你不想更改提交消息,因为这样会更改提交ID,并产生各种复杂的后果。相反,请使用git notes@slesk

我遇到过这样一种情况,提交的文件会被bug tracker工具检查,一旦它检查了提交消息,就必须更改


所以我的问题是,有没有办法更改已提交到本地git存储库的文件的提交消息

如果您的提交处于提示状态(此后未提交其他更改),您可以:

如果自以下日期起已提交其他更改:

git rebase -i <commit-to-change>~

如果在前面被问到,你可能会赢得很多声誉:通常你不想更改提交消息,因为这样会更改提交ID,并产生各种复杂的后果。相反,请使用
git notes
@sleske。原始海报希望更改本地提交的消息,这种情况随时都会发生,只要提交不被任何其他人共享即可。@Cupcake:True。提到“由bug tracker工具审查”,我认为这可能是在将提交推送到某个中央服务器之后发生的,因为bug tracker通常在中央服务器上运行,并且无法访问开发人员的本地repo。当然,我可能猜错了。有没有一种方法可以在没有编辑器帮助的情况下,将提交消息作为参数直接传递给git-rebase-I命令。例如git-rebase-i应该替换该特定提交的提交消息。
git-rebase-i
是您想要编辑的提交之后,如果有更多的提交,您将使用它。它允许一次编辑多个提交。我已经编写了一些脚本,这些脚本可以执行与您所要查找的类似的操作,我为您的问题提供了最简单的答案。假设提交已经在客户端计算机上完成,我要查找的是一个命令/脚本,它接受commitid并更改该特定提交的提交消息。如果您有脚本,是否可以共享它?是否也可以在不更改提交id的情况下更改提交消息?如果不更改提交id,则无法更改提交消息。将生成提交id,并且日志消息是公式的一部分。
git rebase -i <commit-to-change>~
git commit --amend -m "New commit message"
git rebase --continue