【问题标题】:How can I stop git merge prompt message keep popping up everytime I do git pull?每次执行 git pull 时,如何停止 git merge 提示消息不断弹出?
【发布时间】:2015-07-18 04:33:48
【问题描述】:

为什么我每次执行 git pull 后都会看到 git merge 提示消息不断弹出?

100%确定没有任何东西在合并。

太烦人了,有人知道怎么阻止吗?

【问题讨论】:

  • '我 100% 确定没有任何东西在合并。' 怎么样?你没有任何未推送的提交吗?
  • @Hexaholic :我在那里尝试了所有答案。似乎没有任何效果。
  • @rangerover.js 你能告诉我们git status的输出吗?
  • 如果我现在做git status,我会得到On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean

标签: git


【解决方案1】:

为什么每次执行 git pull 后总是弹出 git merge 提示信息?

因为git pull本质上是fetch后跟merge,而merge的默认行为是自动提交结果。

您可以通过提供--no-edit 选项来避开编辑器,在这种情况下,您将收到一条自动生成的提交消息。

【讨论】:

    【解决方案2】:

    如果我没记错的话,这意味着快进合并是不可能的。通常这种情况发生在 master 中的提交不存在于 origin 的 master 分支(或您从中提取/合并到的任何分支)中时

    在这种情况下,在 git-pull 完成获取之后,历史将如下所示:

                           origin/master
                           |
    -- A -- B -- C -- D -- E
                  \
                   +-- D'
                       |
                       master
    

    要将更改 D 和 E 带入本地 master 分支,git 需要引入一个合并提交 M(它记录父级并解决潜在的合并冲突),这就是它要求您提供消息的原因。

    合并后的历史如下图所示:

                           origin/master
                           |
    -- A -- B -- C -- D -- E
                  \         \
                   +-- D' -- M 
                             |
                             master
    

    据我所知,这是默认行为。但是,git-pull documentation 说:

    --no-edit 选项可用于接受自动生成的消息(通常不鼓励这样做)。

    免责声明:我现在没有可用的 git 来测试它:(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2016-11-02
      • 2015-08-26
      • 2018-03-05
      • 2020-07-27
      相关资源
      最近更新 更多