尝试通过在上一条消息的末尾附加一个字符串来编辑上次提交消息。
尝试从CI服务器执行此操作,因此我正在寻找一种不需要任何交互式人工干预的自动解决方案
答案 0 :(得分:7)
如果要在不打开编辑器的情况下修改当前提交并更改提交消息,可以使用-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.
答案 1 :(得分:2)
一种方法是使用GIT_EDITOR
环境变量并修改提交:
# $1 is the file with the commit message to be amended
GIT_EDITOR="echo 'appended line' >> $1" git commit --amend
此变量将设置用于该操作的编辑器。基本上它会调用变量中的命令集,并使用提交消息传递文件
答案 2 :(得分:1)
将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"
答案 3 :(得分:0)
这是我一直用来修改最后一次提交的一行
git commit --amend -C head
-C表示“获取现有的提交对象,并在创建提交时重用日志消息和作者信息(包括时间戳)。”
如果您想进行其他更改,请使用-c
代替
-c表示“与-C一样,但是使用-c调用编辑器,以便用户可以进一步编辑提交消息。”