git - 主分支有时在开发分支之前
问题描述
我正在使用 GIT 和 GITLAB(当前版本)。主分支受到保护以防止推送。我在一个开发分支上工作,并要求不时将此分支合并到 master 中。CI 编译并运行单元测试,如果一切成功,则合并分支。通常我使用快进合并。
尽管没有其他人提交,也没有其他分支,但我的主人有时会领先于开发分支。然后 GITLAB 拒绝合并。如果我获取/拉主并在本地开发,我可以毫无问题地将开发合并到主中。
我不明白我的主人如何领先于发展,因为我只将发展合并到主人(快进)。即使没有快速前进,Master 也会在提交方面领先,但如果没有更改,GITLAB 也不会拒绝合并。我看到 master 中已经存在很多差异,但比较分支功能表明它们不在 master 中。
我已经从头开始创建了一个新的 repo,更新了 gitlab,但是在一些合并之后,master suddelny 再次领先。
我还在另一个项目上使用相同的策略(开发/主)在相同的 gitlab/git 实例上但没有合并 CI(仅在合并后部署)。那里没有出现这些问题。
解决方案
分歧的原因是将合并上的提交压缩到主控。如果我省略压缩提交,分支就不再发散了。将来,如果我也删除源分支,我只会在合并时压缩提交。
推荐阅读
- mysql - 如何将 PwnedPasswordsTop100k.txt 插入 MySQL
- php - 如果结果等于特定类别,Codeigniter 显示 TYPE 表中的 TYPE_LABLE
- vue.js - 在 `npm build` 的输出中添加源路径前缀
- mongodb - 单个 MongoDB 聚合管道中的总计数和带条件的字段计数
- python - 当字符串是变量时如何使用原始(r)字符串?
- vue.js - 如何在 vuex 的操作对象中使用异步和等待?
- sql - 如何解析json数据然后将其保存为sql server中的变量
- java - 你能在这段代码中找到无限循环吗?
- javascript - 当我点击使用 react.js 的选择时,如何显示三个参数?
- java - 运行模拟器时菜单不显示