【问题标题】:How to disable git automatic merge如何禁用git自动合并
【发布时间】:2017-12-18 15:57:13
【问题描述】:

我正在使用 git,我想在 git pull 上禁用 git 自动合并,因为有时它会导致代码错误,因为 git 基于行比较合并。是否可以强制 GIT 始终启动手动合并而不是自动在git pull 上合并,也就是说禁用 git 自动合并。

【问题讨论】:

  • 已经浏览了这篇文章,这不是我要问的,我问的是是否可以永久绕过自动 git 合并过程,帖子中提供的答案限制你总是去在执行 git pull 之前通过 git difftool,而我需要的是禁用 git 自动合并。
  • 不,但我很好奇你为什么想要。
  • 有时合并会导致错误,为了完全控制代码,我需要设置一种方法让 git 始终为开发人员运行手动合并
  • 你明白什么是合并吗?

标签: git


【解决方案1】:

来自git pull手册页:

git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。

所以git fetch 可能是你需要的。

【讨论】:

    【解决方案2】:

    我对你真正想要的猜测是在无法将当前分支快速转发到上游分支时禁用合并。

    默认情况下,当您的本地分支与上游git pull 不同时,git 行为会运行合并。依次合并将尝试快进分支,如果失败(如果您的本地分支不是上游分支位置的直接祖先,则会发生这种情况)然后尝试以“通常”的方式合并它。在这种情况下,合并可能会导致您必须解决的合并冲突。我认为这是您在问题中提到的以及您希望停止发生的事情。

    为防止这种情况,您可以将git pull 配置为仅在可以快进时执行合并。您可以通过将--ff-only 指定为git pull 调用来做到这一点:

    git pull --ff-only
    

    或者您可以使用git config 将其设为git pull 的默认行为:

    git config --global pull.ff only
    

    【讨论】:

      【解决方案3】:

      没有像“手动合并”这样的东西。

      但是,如果您想在提交之前检查(和修改)merge 的结果,可以将--no-commit 命令行标志添加到git pull 命令。

      Git 仍会进行合并,但您可以查看和更正它(如果需要)。然后,当您对合并代码的外观感到满意时,您可以运行 git commit 来完成合并(和拉取)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-11
        • 2019-08-29
        • 2021-12-22
        • 1970-01-01
        • 2014-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多