首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何才能git commit --no-edit,但也接受最后一次提交的作者姓名/电子邮件?

我如何才能git commit --no-edit,但也接受最后一次提交的作者姓名/电子邮件?
EN

Stack Overflow用户
提问于 2020-05-02 00:06:05
回答 1查看 273关注 0票数 0

我们的CI构建执行git合并--将$BRANCH压缩到master中,然后执行git commit --无编辑,如果构建通过,它将推送master (我们的CI是唯一可以推送到master的CI)。

然而,目前我们的git日志如下所示

我更喜欢将消息设置为分支所有挤压的提交(添加-m清除所有挤压的提交:( ),将用户设置为上次提交的用户名,并将电子邮件设置为name+上次提交的电子邮件。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 05:54:34

通过将GIT_COMMITTER_NAMEGIT_COMMITTER_EMAIL环境变量设置为适当的值,可以在执行压缩时设置提交者名称和电子邮件。这将覆盖默认设置并允许您对其进行自定义。

至于修改消息,您并不真正想要--no-edit,因为您确实想要编辑它,但是您也不想要-m,因为它覆盖了整个消息。您真正需要的是一个脚本,它可以编辑要用作编辑器的提交消息。

您确实可以使用GIT_EDITOR指定这样一个脚本,它应该接受一个参数作为要编辑的文件的名称,它应该就地编辑它(或者用您的副本覆盖该文件),并且它应该退出0。如果您使用的是标准的Unix环境,那么调用诸如exed之类的程序的shell脚本可能是一个不错的选择。您还可以使用sed写入临时文件,然后使用mv覆盖原始文件。

因此,您的调用最终将如下所示:

代码语言:javascript
运行
复制
GIT_COMMITTER_NAME="$(git log -1 --format=%an "$BRANCH")" \
  GIT_COMMITTER_EMAIL="$(git log -1 --format=%ae "$BRANCH")" \
  GIT_EDITOR="script/to/merge-editor" \
  git merge --squash "$BRANCH"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61546172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档