如何跳过“git commit --amend”中的提交信息步骤?

89

我正在运行一个非常快速的代码-编译-测试循环,在这个过程中,我更改提交的次数远远超过不改变的次数。

例如:

# Make some changes
$ git commit -m "Added feature X"
# Compile, test
# Fix bugs
$ git commit -a --amend

通常我希望在修复错误后使用相同的提交消息。是否有一种方法可以让 git 跳过启动我的编辑器并仅使用原始的提交消息呢?

4个回答

113

你可以添加--no-edit来使用上一条信息。这个选项从2005年开始存在,但直到最近才对--amend选项进行了启用。

另一种方法是在修订选项的提交命令中添加 -C HEAD。这样做不仅可以使用当前提交的信息,还可以指定任何其他参考,因此值得记住。

当从历史记录的不同位置构建提交并使用其中一个提交的信息时,这特别有用。例如:

git checkout feature1^^ -- database/table1.sql
git checkout feature1^^^^ -- logger.py
git add -A && git commit -C feature1

这将仅使用来自feature1的两次提交,并使用feature1最后一次提交的提交消息 - 如果那是一个很好的描述的话。


17
请注意,它还会复制上一个提交的时间戳,这可能是不希望出现的。 - Matthew Flaschen
6
@Matthew 通常情况下,“--amend” 的作用是如此。 - Josh Lee
另外,尝试使用以下命令:git config --global alias.c 'commit -a --amend -C HEAD' - William Pursell
6
如果你想更改时间戳并将作者设置为提交者(在这种情况下后者可能无关紧要),你可以使用“--reset-author”命令。 - Matthew Flaschen

11

从git 1.7.9版本开始,您还可以使用git commit --amend --no-edit命令。


10

您也可以使用

--reuse-message=<commit>
Take an existing commit object, and reuse the log message and the authorship 
information (including the timestamp) when creating the commit.

您可以使用先前提交的消息。这也可以是脚本或git别名的一部分。


10
git commit --amend --reuse-message HEAD 

将重复使用上次提交的消息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接