首页 > 解决方案 > 为什么每次我拉到我的虚拟主机时 git 都会进行合并?

问题描述

最近,每次我想将更改拉到我的虚拟主机时,git 都会提示我输入合并消息。我不确定我是如何陷入这种境地的。为什么每次拉取都要合并?

我的本地分支是master。我的虚拟主机上的分支也是 master。

如果我按照我一直做的常规步骤...

  1. 在本地进行更改。加特加。Git 提交。推。
  2. SSH 进入网络主机。导航到项目目录。吉特拉。

...为什么会提示我合并?

注意:我不是在问如何避免输入合并消息。我在问为什么我必须合并,以及如何摆脱这种情况。

标签: git

解决方案


假设您没有禁用默认的快进行为,这意味着您的 Web 主机历史记录中的提交不在您的开发分支的历史记录中。

只有当当前状态位于新状态历史的某个位置时, git 才能通过快进[1]跳过在合并期间创建合并提交的需要。如果有代码直接在您的 Web 服务器上签入,或者有类似的东西git rebase改变了历史,那么这个假设可能不再成立。

如果您想让您的生产 Web 服务器的代码与 git 中的代码完全匹配,请不要使用——pull这种情况下使用正确的工具是git reset --hard相反的。


[1] -pull 总是进行某种合并—— fetch+merge是git 术语的pull 意思——但是当它是一个快进合并时,它更接近于不可见。


推荐阅读