【问题标题】:How to automate git merge to not prompt to confirm the commit message?如何自动化 git merge 不提示确认提交消息?
【发布时间】:2012-07-03 21:09:41
【问题描述】:

我正在尝试使用 git 执行一些自动化脚本,例如更新子模块、移动到适当的标签等简单的事情,但我现在发现的问题之一是 git 现在强制您确认合并消息。有没有办法阻止这种行为的发生?

【问题讨论】:

  • 你在什么情况下运行什么合并命令来获得这种行为?另外请给出 Git 版本。
  • @DanHulme 感谢下面的评论。我使用的是 git 1.7.10,基本上 any 合并、拉取操作会导致交互式提示。 --no-edit 并导出 GIT_MERGE_AUTOEDIT=no 解决了它。

标签: git automation


【解决方案1】:

您可以将--no-edit 开关添加到git-merge,它不会要求您确认合并消息。

【讨论】:

  • 较新版本 (>=1.7.10) 的 git merge 默认进入交互式会话。您必须添加 --no-edit 参数或添加环境变量 GIT_MERGE_AUTOEDIT=no 来抑制交互式会话
  • @linquize,我希望你把这个作为答案——环境正是我想要的。
【解决方案2】:

为了防止 git 在 mac 上提示您提交提交消息,请将其添加到您的 .bashrc 或 .bash_profile (read more about the difference between the two files)

export GIT_MERGE_AUTOEDIT=no

然后在你的终端输入:

source ~/.bashrc

重新加载您的 bash 文件并继续,不受任何干扰。

【讨论】:

  • 编辑~/.bashrc~/bash_profile~/.zshrc(或适用于您的终端的任何内容)将确保更改保留到终端会话中。我会提到,虽然没有必要明确地获取文件,并且如果用户在其中添加了他们没有在每个会话中执行两次的内容,可能会产生意想不到的后果。除了采购它,我们还可以直接在当前终端会话中执行export GIT_MERGE_AUTOEDIT=no
【解决方案3】:

使用这个命令:

git merge other_branch --commit --no-edit

--commit 在合并后立即自动提交。

--no-edit 防止出现提交消息编辑器。

【讨论】:

    【解决方案4】:

    您可以通过将vim 替换为cattrue 来更改编辑器以使其不显示,例如:

    GIT_EDITOR=true git merge branch_name
    

    这将自动填充合并消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-27
      • 2013-12-10
      • 2011-09-14
      • 2013-11-13
      • 1970-01-01
      • 2016-04-23
      • 2021-05-12
      • 2021-03-12
      相关资源
      最近更新 更多