自动化“git merge”提交信息

4

我经常需要使用当前主分支更新我的远程分支。我正在尝试自动化此过程,方法如下:

#!/usr/bin/env bash

cd directory
git checkout master 
git pull
git checkout <remote_branch>
git pull origin <remote_branch>
git merge master
git push

但是当我合并主分支时,会跳转到我的编辑器中,我需要使用:wq才能进行推送。如何在我的Bash脚本中复制这个:wq呢?

1个回答

6
以下列出了三种方法来完成此操作,您无需复制 :wq 以执行此操作。

1 - 使用 --no-edit

使用 --no-edit 选项,将接受自动生成的消息(通常不建议这样做,请参见 git 文档
因此,在您执行 git pull origin <remote_branch> 后,可以使用
git merge master --no-edit

2 - 使用环境变量

旧脚本可能依赖于历史行为,即不允许用户编辑合并日志消息。当他们运行git merge时,他们会看到编辑器打开。为了更轻松地调整这些脚本以适应更新后的行为,可以在它们的开头将环境变量GIT_MERGE_AUTOEDIT设置为no。— git文档

使用方法:

GIT_MERGE_AUTOEDIT=no

在合并线之前

3 - 使用-m提供消息

设置用于合并提交的提交消息(如果创建了一个)。

如果指定了--log,则将被合并的提交的短日志附加到指定的消息中。

git fmt-merge-msg命令可用于为自动 git 合并调用提供良好的默认值。自动消息可以包括分支描述。 — git 文档

git merge master -m "Merge master"

阅读更多:git merge 命令


git merge master --no-edit - Kasthuri Shravankumar
为什么不建议使用--no-edit选项? - Yordan Grigorov

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