尝试通过在上一个信息的结尾添加字符串来 编辑 上一次提交的信息。
正在从CI服务器上尝试执行此操作,因此我正在寻找一种自动化解决方案,不需要任何交互式人工干预。
尝试通过在上一个信息的结尾添加字符串来 编辑 上一次提交的信息。
正在从CI服务器上尝试执行此操作,因此我正在寻找一种自动化解决方案,不需要任何交互式人工干预。
-m
选项指定消息。例如:git commit --amend -m"This is the commit message."
将使用给定的消息作为新消息,修改当前的HEAD:
% git log
commit adecdcf09517fc4b709fc95ad4a83621a3381a45
Author: Edward Thomson <ethomson@edwardthomson.com>
Date: Fri Mar 17 12:29:10 2017 +0000
This is the commit message.
如果你想“追加”消息,你需要获取前一个消息:
OLD_MSG=$(git log --format=%B -n1)
然后您可以使用它来设置新消息,使用多个-m
来设置多行:
git commit --amend -m"$OLD_MSG" -m"This is appended."
将给定的消息附加到原始消息末尾:
% git log
commit 5888ef05e73787f1f1d06e8f0f943199a76b70fd
Author: Edward Thomson <ethomson@edwardthomson.com>
Date: Fri Mar 17 12:29:10 2017 +0000
This is the commit message.
This is appended.
xargs
不是为此而设计的,但可以。例如:OLD_MSG=$(git log --format=%B -n1 | xargs)
。 - Edward ThomsonGIT_EDITOR
环境变量并修改提交内容。GIT_EDITOR="echo 'appended line' >>" git commit --amend
其中appended line
是您要插入的内容。
该变量将设置用于此提交操作的编辑器。基本上,Git将执行任何设置该变量的操作���传递一个包含提交消息的文件名,即$GIT_EDITOR <file>
或者在这种情况下,echo 'appended line' >> <file>
。
这是我经常用来修正最后一次提交的命令
git commit --amend -C head
-C选项的意思是“使用现有的提交对象,重用日志信息和作者信息(包括时间戳)创建提交。”
如果您想进行其他更改,请使用-c
。
-c选项的意思是“与-C相似,但使用-c会调用编辑器,以便用户可以进一步编辑提交消息。”
head
替换为HEAD
。 - twilHEAD
在某些系统上可能是必需的,但在macOS上,head
完全可以正常工作。 - Abizern结合git log
和git commit --amend
:
APPEND_MESSAGE="foo bar baz"
PREVIOUS_MESSAGE="$(git log --format=%B -n 1)"
git commit --amend -m "$PREVIOUS_MESSAGE" -m "$APPEND_MESSAGE"
git commit --amend -m "$(git log --format=%B -n1)" -m "This is appended message"
其中最后一个路径(“这是追加的消息”)是附加消息。