我知道两种在git中更改提交信息的方法。
第一种是使用git amend
,但只适用于最新的提交。因为我想直接更改旧的提交信息,所以这不是我要找的。
第二种是交互式rebase,如answer所描述的那样,它可以更改旧的提交信息。具体步骤如下:
git rebase -i HEAD~n
在我的特定情况下,我必须手动计算变量n
的大小,然后浏览所有提交的列表,并将其中一个提交从pick
更改为reword
,最后输入新的提交消息并强制推送。
老实说,虽然这种方法可行,但操作非常复杂和繁琐。所以我的问题是,是否有更简单易用的选项(可能是别名形式),可以自动完成这个过程?
理想情况下,我希望有一个类似以下命令的方式:
git reword <hash> -m "New commit message"
然后只需强制推送。这是可能的吗?
编辑:我想摆脱交互性,因为我想从我的程序中以编程方式自动执行一些git命令。在该过程中手动与git进行交互有点违背自动化的目的。
HEAD~n
只是修订语法吗?你可以根据自己的需求指定修订版本,甚至可以只使用<hash>
。 - undefinedHEAD~n
,而是直接给出你想要更改的提交的父提交,例如git rebase -i <hash>^
。 - undefined