防止 Master Branch 领先于 dev

2024-02-17

我们有一个非常标准的 git 工作流程,但我对一件事感到恼火:master 领先于开发,因为每次部署我们都会创建从 dev 到 master 的合并提交。

首先我们的工作流程:

  • master branch- 始终干净并可用于部署
  • development branch- 收集新功能/错误修复(如果有) 审查并批准
  • feature branch- 一个新的分支,只有 一项功能需要更改(它是分支的development branch)

每个成功的拉取请求(功能>开发)都会创建一个合并提交,这很好。

但是每次部署(开发>主控)也会创建一个合并提交只存在于master中。因此,在 20 次部署之后,主分支比开发分支提前 20 次提交。

你如何处理这种行为?你是否时不时地合并 master > dev (这实际上除了创建一个无用的合并提交之外什么也没做)?

重新调整开发分支似乎不是一个选择,因为那样每个开发人员都会丢失跟踪的远程分支。


您所要求的称为“快进”合并。既然您提到了拉取请求,我假设您正在使用某些东西来管理您的分支(GitHub、BitBucket 等),因此完成您想要的操作的确切说明可能会有所不同。


鉴于这种状态:

master o-o-o-o
              \
development    o-o-o

您的软件可能正在应用--no-ff合并时标记(这是标准行为,因为您希望在将功能合并到development)。从命令行来看,这相当于:

git merge --no-ff development

master o-o-o-o-------o
              \     /
development    o-o-o

但是,如果您想避免合并提交,您确实需要快进分支:

git merge --ff development (The --ff应该是不必要的,因为这是默认行为)

master/development o-o-o-o-o-o-o

Notes:

  1. 如果你这样做,你就会失去判断何时发生的能力。development被合并到master。这可能不是一个问题(或者您可能会以其他方式解决这个问题,例如使用标签)。
  2. 如果您确实有独特的提交master并且快进是不可能的,这仍然会创建合并提交。但是,您可以使用该标志--ff-only如果无法快进(无论是唯一提交master或已经是最新的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 Master Branch 领先于 dev 的相关文章

  • 无法使用 git 推送或获取 [重复]

    这个问题在这里已经有答案了 我可以拉 但无法使用 git 版本 1 9 5 推送或获取 它突然开始给我以下错误 关于如何修复它有什么想法吗 git fetch fatal unable to access https email prote
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 执行 git Push 时出现“diff.renamelimit 变量”警告

    我将本地提交推送到远程 git 服务器并收到以下警告消息 remote warning only found copies from modified paths due to too many files remote warning y
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 为什么 git-svn 应该积极搜索旧历史?

    当我运行 git svn clone s 时发生了一些奇怪的事情 尽管以下信息告诉我们不要惊慌 但我想知道为什么会出现这种 svn 错误 为什么这个路径不存在 是被别人删除了吗 如果是 为什么 git svn 应该积极搜索旧历史记录 Ini
  • GitHub Pages (github.io) doxygen 生成的页面未找到 (404)

    我不明白为什么找不到 doxygen 生成的页面 404 它在Github存储库中的路径是https github com AubinMahe AubinMahe github io blob master doxygen html dd
  • 在工作表中合并行和求和值

    我有一个 Excel 工作表 其中包含以下数据 管道 来分隔列 A B C X 50 60 D E F X 40 30 A B C X 10 20 A B C Y 20 20 A B C X 20 70 D E F X 10 50 A B
  • http.h:6:23: 致命错误:curl/curl.h:没有该文件/目录

    我在 CentOS 7 中下载 git 包 wget https www kernel org pub software scm git git 2 0 1 tar gz tar xzf git 2 0 1 tar gz 当我编译git时
  • 使用 GitHub,在添加现有存储库时如何推送所有分支?

    我创建了一个新的 GitHub 存储库 我想将现有的存储库放在那里 我按照说明操作 cd existing git repo git remote add origin email protected cdn cgi l email pro
  • Heroku 应用程序上的 Nodejs Express EACCES 0.0.0.0:80

    我正在尝试在他们的网站上新创建的 Heroku 应用程序上运行 Node 应用程序 我按照他们的步骤操作 但在显示应用程序状态时仍然遇到错误 我跟着Node js 入门 https devcenter heroku com articles
  • 合并后 Git 分支和提交历史记录

    我正在开发一个项目 单独 对于我开发的每个功能 我都会创建一个新分支 处理该功能 然后将其合并到 master 中 所以通常我不会同时在两个不同的分支上工作 也不会在一个分支上工作时接触master 当我合并一个分支时 我看到 使用gitx
  • 创建多个 git 分支的联合分支

    我希望能够在现有分支之上分层其他分支 并独立修改这些分支 这很有用 例如 允许将各个子项目的二进制文件统一到同一个项目中bin目录 一般来说 给定的文件仅存在于一层中 理想情况下 我想我会使用 unionfs 来完成此任务 但它必须以某种方
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • Git撤销本地分支删除

    我刚刚删除了错误的分支 并进行了一些我需要的实验性更改git branch D branchName 如何恢复分支 您可以使用git reflog http git scm com docs git reflog查找分支最后一次提交的 SH
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • 在 python 中找不到 git 可执行文件

    我试图使用访问密钥克隆 git 存储库 但是当我尝试运行它时 它抛出一个异常 说找不到 git 可执行文件 但我已经安装了 git 并且 in it py 显示了正确的路径 C Program Files Git bin 我还安装了 git
  • git merge --squash 和 gitcherry-pick 有什么区别?

    如果我在标准的主功能工作流程中工作 那么将功能分支压缩到主功能分支和将其挑选到主功能分支之间有什么区别 分支示例 m1 m2 master f1 f2 feature 我认为两者都有相同的输出 即 m1 m2 m3 master f1 f2
  • 设置 git 别名,但调用它会给出“找不到命令”

    我想在 git 中设置一个别名来计算存储库中的总行数 因此我进入 Git Bash 并输入以下内容 git config global alias linecount ls files z xargs 0 wc l 我输入命令后 没有出现错
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull

随机推荐

  • ngAnimate CSS 动画不适用于 ng-show 和 ng-hide

    DEMO http plnkr co edit cPDUWO p preview http plnkr co edit cPDUWO p preview 我在页面上显示了 2 个选中的复选框和 2 个小部件 单击复选框将使用ng show
  • 签署 F# 程序集(强名称组件)

    我在 CodeProject 上找到了这篇文章 http www codeproject com Articles 512956 NET Shell Extensions Shell Context Menus http www codep
  • python 中的“is”是如何工作的?

    请有人解释一下如何在 if 条件下使用 is 我正在使用分数模块 但遇到了一些麻烦 gt gt gt Fraction 0 1 is 0 False gt gt gt float Fraction 0 1 0 0 gt gt gt floa
  • 如何使用 IDisposable 修复内存泄漏

    我有一个 net 应用程序似乎存在内存泄漏问题 net 服务启动时大约需要 100MB 内存 但在负载下它会达到大约 400 500MB 我的大多数类都没有非托管资源 并且那些已经实现了 IDisposable 的类 所以我的问题是在我的课
  • 延迟加载加载图像后如何触发事件?

    我有需要绝对定位的图像 以便图像的中心位于其父 div 的中心 我已经有执行此操作的代码 我最近添加了延迟加载插件 它按预期工作 但我需要一种触发图像居中代码的方法after延迟加载已加载and图像淡入 我当前的代码基本上是这样的 jQue
  • 更改现有应用程序的证书指纹

    我有一个已发布到 Google Play 的现有应用程序 一切都很好 直到我换了一台电脑并且我的 sha1 指纹发生了变化 有没有可能的方法来更改 google play 开发者控制台中现有应用程序的 sha1 如果没有 我该如何处理 谢谢
  • 在 numpy 中乘以对数概率矩阵的数值稳定方法

    我需要获取包含对数概率的两个 NumPy 矩阵 或其他二维数组 的矩阵乘积 天真的方式np log np dot np exp a np exp b 由于明显的原因而不是首选 Using from scipy misc import log
  • 调用虚拟成员类的方法

    我知道该怎样virtual在成员函数的上下文中工作 但我在网上看到一篇关于虚拟成员类的文章 这让我感到困惑 我找到的例子是这样的 class Machine void run virtual class Parts The inner cl
  • GIT 无法从远程存储库读取

    我克隆了一个私人存储库 将其分叉 并对功能分支进行了一些更改 当我尝试将这些更改推送到存储库时 我收到以下消息 Permission denied publickey fatal Could not read from remote rep
  • Three.js 立方体每面都有不同的纹理

    我正在尝试创建一个 Three js 立方体 每个面上都有不同的纹理 基本上是一个骰子 这是在我的沙盒环境中 因此应该只生成一个旋转立方体 每侧都有骰子图像 1 6 完成后 我打算将其用于浏览器基础游戏 这个例子我只在 Chrome 中进行
  • IIS 的 ProxyPassReverseCookieDomain 等效项

    我使用 IIS 和 URL 重写作为反向代理 我的实际 Web 应用程序托管在无法直接访问互联网的服务器上 在重写规则中 我将反向代理的主机名替换为本地 IP 地址 这很好用 不过 我使用的应用程序提供下载 一旦客户端发出下载请求 服务器端
  • 禁用 jqgrid 的编辑(添加、编辑和删除)按钮而不是隐藏(默认行为)

    默认情况下 Jqgrid 使用值为 false 的适当属性隐藏添加 编辑和删除按钮 例如 导航网格中的 add false edit false del false 或其他方式 在这里 我想禁用这些按钮而不是隐藏 任何人都可以帮忙解决这个问
  • 获取给定进程的 STARTUPINFO

    是否可以获取另一个正在运行的进程的启动信息 我想找出命令行参数 是否应该最小化 最大化运行 在目录中启动 以管理员身份运行等 您需要从远程进程读取 RTL USER PROCESS PARAMETERS 这可以这样做 NTSTATUS Ge
  • 在调试时在注册类中调用 qmlRegisterType() 会导致应用程序崩溃

    我想用qmlRegiterType 在注册类本身中 我尝试使用此方法topic https stackoverflow com questions 37622694 call qmlregistertype in the registere
  • 在 ASP.NET Core 中获取控制器详细信息

    在 ASP NET 4 x 中 有一个ReflectedControllerDescriptor所在的类System Web Mvc 此类提供控制器的描述符 在我之前的应用程序中 我曾经这样做过 var controllerDescript
  • Codeigniter 的 Google 双因素身份验证教程

    有谁知道 Codeigniter 的 Google 双因素身份验证教程吗 这里 tutsplus 将双因素身份验证与 CodeIgniter 集成 http net tutsplus com tutorials php integratin
  • 使用分离器调整控件的大小超出父级的客户区

    我正在尝试使用拆分器复制大小调整 如 MS SQL Management Studio 中所述这个问题 https stackoverflow com questions 13909756 how to resize controls be
  • 如何将图像帧相机传递给 wasm (C++) 中的函数?

    我正在尝试构建一个 C 函数并使用 Emscripten 将其编译为 Wasm 该函数的作用是接收图像并对其进行一些处理并返回结果 我的第一个 POC 成功了 用户使用上传图像file输入 我使用传递图像的数据FileReader API
  • 如何将 MSSQL CTE 查询转换为 MySQL 5.7?

    我有一个 SQL 查询 with temp as select min ms date as start max ms date as end count sessionid visitor count category convert v
  • 防止 Master Branch 领先于 dev

    我们有一个非常标准的 git 工作流程 但我对一件事感到恼火 master 领先于开发 因为每次部署我们都会创建从 dev 到 master 的合并提交 首先我们的工作流程 master branch 始终干净并可用于部署 developm