自动重新编写所有重新提交的提交

时间:2016-07-06 21:22:06

标签: git bash

我希望能够在将它们推送到遥控器之前修改我的提交消息,但我想自动执行此操作。

我可以通过

重新编写所有其他提交
git rebase -i origin/master

这会打开一个编辑器,我可以将所有提交从pick更改为reword。然后它将调出编辑器,我可以在其中修改我的提交消息。

约束摘要:

  • 我不想将每次提交都更改为reword
  • 我不想手动输入每个提交哈希值。

有没有办法做这样的变换?

1 个答案:

答案 0 :(得分:6)

由于问题对编辑的性质有点模糊,这些只是你可以做什么的线索。

  

我不想将每次提交更改为reword。

您可以使用git-rebase -i更改git config sequence.editor 'sed -i s/pick/reword/'使用的编辑器,以便不会为rebase-todo弹出编辑器,并替换选择。但这有点笨拙,因为你必须在之后取消配置。 (其他案例也有core.editor$EDITOR)。

您还可以运行git rebase origin/master -x 'git commit --amend'-x在rebase-todo中的每个exec <argument of the -x>之后添加pick行。请注意,这里不需要-i。修改将允许您更改提交消息,例如git commit --amend -m "new message"

  

我不想手动输入我想要重写消息的每个提交。

您可以将EDITOR变量用于以您希望的方式编辑的非交互式命令,但我不知道您想要进行哪种编辑。

  

我想用pick

以外的东西来修改所有新提交

见前面的答案。