有没有一种方法可以在非交互式地修改提交消息时使用git commit --fixup=amend?

kadbb459  于 2023-05-12  发布在  Git
关注(0)|答案(1)|浏览(220)

我想使用git commit --fixup通过脚本压缩一些提交,但我遇到了一个问题,即-m的消息开关不能与--fixup:amend一起使用。

$ git commit --fixup=amend::/'Upgrade to foo' -m "Upgrade to bar"
fatal: options '-m' and '--fixup:amend' cannot be used together

(如果我能走那么远的话,我以后会git rebase --autosquash <some-much-earlier-commit>把它们都挤在一起)
我可以使用普通的--fixup而不使用amend,但这样我就不能更改提交消息了。如果没有-m消息,编辑器将打开以编辑提交消息,因此这不能通过脚本来完成。
我知道这些是“瓷器”命令,但是当我通过脚本来做这件事时,我想知道是否还有一种方法可以做git commit --fixup=amend的等价物,同时仍然使用“管道”命令非交互地更改提交消息?

a8jjtwal

a8jjtwal1#

是的,你完全可以使用git commit --fixup=amend来修复和修改提交消息,而不需要交互输入任何东西。你所要做的就是使用**-C--reuse-message**选项沿着旧的git commit命令。
下面是示例命令:

git commit --fixup=amend -C HEAD --no-edit
  • *-C--no-edit**参数指定要修复的提交,并确保提交消息不会在编辑器中打开,从而不需要交互式输入。

Git会自动修正并修改提交的新消息,而不需要你交互式地编辑消息。
但是,请注意,使用**--fixup=amend**会修改提交历史,所以要谨慎使用,特别是如果提交已经被推送到远程仓库。

相关问题