有没有办法在非交互式更改提交消息的同时 git commit --fixup=amend?

问题描述 投票:0回答:1

我想通过使用

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

我可以在没有

--fixup
的情况下使用普通的
amend
,但是我无法更改提交消息。如果没有
-m
消息,编辑器将打开以编辑提交消息,因此无法通过脚本来完成。

我知道这些是“瓷器”命令,但是当我通过脚本执行此操作时,我想知道是否还有一种方法可以在仍然使用“管道”以非交互方式更改提交消息的同时执行相当于

git commit --fixup=amend
的操作命令?

git git-commit
1个回答
0
投票

当您使用

--fixup
--amend
时,Git 不允许您添加新的提交消息,因为这些命令专门用于调整以前的提交,而不是创建新的、不同的提交。

如果你想使用脚本以非交互方式更改提交消息,你可以这样做:

1.使用

git add
进行更改。

2.使用

git commit --no-edit --amend
提交更改。这将修改最后一次提交而不更改其消息。

3.使用

GIT_SEQUENCE_EDITOR
环境变量和 rebase 更改提交消息:

GIT_SEQUENCE_EDITOR="sed -i -re 's/^pick (\\w+) .*/reword \\1/'" git rebase -i HEAD~1
echo "Your new commit message" > .git/COMMIT_EDITMSG

希望对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.