git - 为什么每次我拉到我的虚拟主机时 git 都会进行合并?
问题描述
最近,每次我想将更改拉到我的虚拟主机时,git 都会提示我输入合并消息。我不确定我是如何陷入这种境地的。为什么每次拉取都要合并?
我的本地分支是master。我的虚拟主机上的分支也是 master。
如果我按照我一直做的常规步骤...
- 在本地进行更改。加特加。Git 提交。推。
- SSH 进入网络主机。导航到项目目录。吉特拉。
...为什么会提示我合并?
注意:我不是在问如何避免输入合并消息。我在问为什么我必须合并,以及如何摆脱这种情况。
解决方案
假设您没有禁用默认的快进行为,这意味着您的 Web 主机历史记录中的提交不在您的开发分支的历史记录中。
只有当当前状态位于新状态历史的某个位置时, git 才能通过快进[1]跳过在合并期间创建合并提交的需要。如果有代码直接在您的 Web 服务器上签入,或者有类似的东西git rebase
改变了历史,那么这个假设可能不再成立。
如果您想让您的生产 Web 服务器的代码与 git 中的代码完全匹配,请不要使用——pull
在这种情况下使用正确的工具是git reset --hard
相反的。
[1] -pull
总是进行某种合并—— fetch
+merge
是git 术语的pull
意思——但是当它是一个快进合并时,它更接近于不可见。
推荐阅读
- r - with() 块结果可以在块外使用吗?
- javascript - Knex 返回应用我机器时区偏移量的 DATETIME 字段
- javascript - Firebase 部署的不安全连接错误
- google-sheets - 从两个单独的工作表中计算百分比
- ios - Finder 预览未显示 Mojave 下的移动配置文件的详细信息
- php - 如何通过创建 SESSION 使用 PHP、MYSQL 和 HTML 创建登录系统
- c# - 如何使用 XDocument 从 xml 响应中读取值?
- dart - 如何在 Flutter 中生成以太坊地址?
- react-native - 如何在反应原生地图中按按钮打印纬度?
- python - 如何终止调用 python 多处理的 ssh 会话