Git:仅在将外部分支合并到主分支时防止快进合并

2023-11-29

为了方便查看功能分支何时合并到 master,可以使用 Git 的--no-ff将其功能分支合并到主分支时的选项。

无需键入即可完成此操作的一种方法--no-ff是完全禁用快进合并到 master 中:

git config branch.master.mergeoptions --no-ff

然而,这很笨拙,因为当简单地将 master 中的上游更改合并到 master 的本地副本时,它也会阻止快进合并(合并提交是为正常情况创建的)git pulls.)

有没有办法配置 Git 以防止快进合并到 master 中仅当将功能分支合并到主分支时,以便在执行时允许快进git pull来自 master,但合并提交时总是创建合并功能分支?或者明确使用--no-ff实现这一目标的唯一方法是什么?


注意:预合并挂钩不存在。
它于 2008 年推出,并且当时批评(因为控制 最好在服务器上实现(使用更新挂钩)。
它正在被重新引入(2012年9月)

And a 提交前/提交后挂钩不会在由 a 完成的自动提交上运行git merge.

So:

  • 要么你在开发人员推送的 git 服务器上放置一个更新钩子(但那时可能已经太晚了,他们意识到他们快进了一个功能分支)
  • 或者您编写(并分发、维护...)git-merge包装器将在本地存储库级别执行该控制。

话虽这么说,正如我在“使用拉动时快进,拉动时不关闭", not using --no-ff有其优点,因为它不会损坏git bisect and git blame.
因此,某个功能的开发人员可能希望在之前重新组织他/她的功能提交(如果功能太多,则稍微压缩一下)快进它们位于 master 分支中(而不是创建一个巨大的提交)。
See "了解 Git 工作流程”了解更多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git:仅在将外部分支合并到主分支时防止快进合并 的相关文章

  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • Jenkins groovy - 如何从最新提交中检索标签?

    从中获取最新提交branchName 我们运行下面的代码 treeMapData git branch branchName credentialsId credential url gitLabServer projectName rep
  • git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

    当我执行没有管道或文件重定向的 git log oneline 命令时 它会提供有关 HEAD 位置和分支的信息 下面示例中的 master git log oneline color never 8bc8511 HEAD gt day 2
  • 将远程更改合并到非当前分支的分支中

    我有多个分支 我想将远程更改合并到一个分支中不是我当前的分支 例如 git merge remote branch some other branch 仅当本地分支可以快速转发到远程头时 这才是可行的 在任何分支中 要从源获取远程分支并更新
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn
  • 将代码从没有权限的存储库推送到私有存储库?

    我有一个来自外部存储库 我们称之为 ExRepo 的文件夹 我没有任何推送权限 我有一个名为 MyOwnRepo 的个人存储库 如何获取 ExRepo 并将其合并到 MyOwnRepo 中 我已经尝试过这个 C Users
  • GitPython - 使用 ssh 密钥克隆 - 主机密钥验证失败

    我在应用程序中克隆 git 存储库时遇到问题 KEY FILE opt app ssh id rsa def read git branch config id branch config RepoConfig objects get id
  • 无法快速删除 Git 中的许多文件

    我删除了 Git 分支中的 777 个文件新功能 by rm example 我愿意承诺 Git 要求我手动删除每个已删除的文件 git rm file 对于所有名称不相似的 777 个文件 编写上述命令将花费大量时间 如何删除我的 Git
  • Git 从 Netbeans 推送到 Gerrit

    我在将提交从 Netbeans 7 4 在 Linux 上 推送到 Gerrit 进行审查时遇到问题 我的git配置 core repositoryformatversion 0 filemode true logallrefupdates
  • 如何克隆没有提交的裸 git 存储库并在克隆过程中获取正确的 HEAD 引用?

    这个答案 https stackoverflow com a 26898059 438273声称该问题已在版本中修复1 8 4 3 但是我在版本中还是遇到了2 25 1 它似乎在版本中按预期工作2 32 0 所以我不确定它是什么时候真正修复
  • 如何正确设置 Azure DevOps 和 GitHub 之间的双向同步

    我想通过执行以下操作在 Azure DevOps 和 GitHub 之间创建双向同步 使用 CI 触发器创建 Azure DevOps 管道 将更改从 Azure DevOps 存储库推送到 GitHub 中的分支 创建第二个管道 用于侦听
  • 无论我做什么,我都无法推送我的代码并不断收到相同的错误

    我正在尝试将代码推送到远程分支 但不断收到此错误 rejected non fast forward error failed to push some refs to email protected cdn cgi l email pro
  • git 标签也会被推送吗?

    自从我创建了我的存储库以来 我所使用的标签似乎 创建不会被推送到存储库 当我做git tag于 本地目录所有标签都存在 但是当我登录到 远程存储库并执行git tag 仅出现前几个 可能是什么问题 你可以这样做 git push tags
  • 将存储库从 Github 移至 Gitlab

    有没有办法将整个存储库从 Github 移动到 GitLab 对于代码本身来说 只需在 GitLab 上创建一个新的存储库并推送到它即可 Wiki 页面位于 Github 上的单独分支中 并通过 Git 机制进行管理 据我所知 GitLab
  • 撤消多个文件和文件夹“git add”[重复]

    这个问题在这里已经有答案了 我执行了 git add 现在我想恢复 git add 我怎样才能做到这一点 git reset 这相当于git reset HEAD 将取消 add 更常见的是 取消暂存 所有文件 In Git revert用
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后
  • 在 Bitbucket 中分叉存储库,保留分叉删除原始内容

    我在 Bitbucket 中分叉了一个存储库 但我想知道删除原始存储库后会发生什么 克隆也会被删除吗 别担心 分叉将继续存在
  • git svn 克隆特定分支并合并

    我希望将我的代码库从 svn 迁移到 git 我的 svn 仓库中有太多分支 我只想克隆几个分支并将它们合并在一起并将其推送到 git 我想避免克隆所有分支 因为这需要很长时间 我该如何实现这一目标 完成后 我想定期从这些 svn 分支获取
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 如何将 GitHub PR 的代码与其他分支的 PR 代码分开?

    我正在开发一个项目并解决问题 我正在为每个拉取请求 PR 创建一个不同的分支 上次我用他们的 PR 创建了两个不同的分支并解决了这两个问题 现在的问题是 我的两个拉取请求都与我在不同分支上推送的代码搞乱了 我借助以下命令在 git bash

随机推荐

  • Django Rest 框架表单

    我想做的事 Django Rest Framework 附带一个渲染器 用于从序列化器返回 HTML 表单 1 在仔细阅读文档和代码之后 我仍然无法弄清楚如何让它呈现空白表单 我认为问题可能在于 我不知道如何实例化空白序列化器 在 DRF
  • yii 验证码无法正确验证

    我尝试使用 yii 添加验证码到我的联系表单 但验证存在一些问题 My model class ContactForm extends CFormModel public verifyCode public function rules r
  • iPhone 应用程序提交:错误 ITMS-90171:无效的捆绑结构 (constants.o)

    我做了大量的研究 并做了几件事来尝试消除这个错误 绝对没有任何作用 当我从 Xcode 中将存档上传到应用程序商店时 出现以下错误 错误 ITMS 90171 无效的捆绑包结构 不允许使用二进制文件 app constants o 除了受支
  • Ngb Tab 在选项卡更改时重新加载组件

    我有 2 个选项卡 选项卡内容内有一个我开发的组件 当我从一个选项卡移动到另一个选项卡并返回到放置我开发的组件的选项卡时 它会重新加载并调用其生命周期方法 这给我带来了问题 有没有办法在选项卡更改时停止重新加载组件 HTML 代码
  • asp.net mvc 和 recaptcha 操作 [重复]

    这个问题在这里已经有答案了 当用户提交表单时 我想间歇性地显示 重定向到验证码页面 基于一些自定义规则 如果经过验证 则执行 提交第一个操作 有没有办法使用 ActionFilter 来做到这一点 或者任何其他方式 这也是 http egl
  • 在ubuntu 16.04上安装pip

    我正在安装pip对于 python3 我为此使用了以下命令 sudo apt get install python3 pip 但安装后还是提示pip未安装 I have python 3 5 2安装 The python3 pip软件包为
  • TinyMCE 在隐藏文本区域之前不会从文本区域获取内容

    我在页面上运行了一个 TinyMCE 实例 使我能够编辑现有帖子 我查询数据库并填充变量 content与存储的文本 然后我有以下 HTML
  • 仅使用 xamarin Andriod 连接到 mySQL 数据库时出现问题,但可在 iOS 和 UWP 中使用

    我正在从 Xamarin 跨平台应用程序直接连接到 mySQL 服务器 仅用于学习目的 该连接在 iOS 和 UWP 中都运行良好 但在 Android 中会抛出此行错误 等待 conn OpenAsync 这是完整的错误 System T
  • LLVM JIT编译的程序找不到外部函数

    我的程序 JIT 编译 LLVM IR 模块并调用函数foo如果其中定义在运行时失败foo使用外部定义的函数 LLVM ERROR Program used external function glutInit which could no
  • 为什么 numpy.vectorize 在使用不确定性时会发出有关无效值的警告?

    使用 Python 3 10 numpy 1 23 5 和不确定性3 1 7 在 Linux 上 特别是在 Fedora 37 上使用 conda forge 的软件包 代码如下 import numpy as np from uncert
  • Qt - 如何在多个平台上保存配置文件

    我正在编写一个 Qt 应用程序 需要将一些设置保存到用户的配置目录中 我想出了以下代码来获取此文件夹 ifdef Q WS WIN path QDir homePath Application Data Timely else path Q
  • excel vba选择表格范围

    我想选择一个表 它将有固定的列 其中 4 个 但可以有任意数量的行 也可以有空行 我将如何选择表格范围 例如 当前选择是B2 to E5 我怎样才能在VBA中以编程方式获得这个 以下是如何设置对表的引用 你应该观看 Excel VBA 简介
  • 基于通配符替换字符串的 SQL 查询

    我想在我的 WP 数据库上运行此类查询以删除 id more 的所有跨度实例 UPDATE wp posts SET post content REPLACE post content p span span p 但在我的示例中 more
  • 如何使用适配器在按钮单击时添加 ListView 项目

    如何获取在 EditText 中输入的数据并通过单击该窗口中的 提交 将其添加到以前的活动列表视图项目中 我需要做的是 创建 EditText 和提交按钮 在同一个 Activity 中创建列表视图 通过单击提交按钮 它应该在列表视图中显示
  • Cobertura 显示正确的覆盖范围,但在声纳中许多文件显示 0% 覆盖范围

    I have write multiple JUnit test classes for my project The code covergae is 80 when I see it in Eclipse using cobertura
  • 执行 sqlalchemy 存在查询

    我无法理解如何执行查询来检查 sqlalchemy 中是否已存在匹配的记录 我可以在网上找到的大多数示例似乎都引用了我没有的 会话 和 查询 对象 这是一个简短的完整程序 说明了我的问题 1 使用 person 表设置内存中的sqlite数
  • 将“Dialog”小部件的宽度设置为 Vaadin 14 中页面的百分比

    在瓦丁 14 中 Dialog当指定宽度和高度时 小部件可以正确打开px CSS 虚拟 像素 Dialog dialog new Dialog dialog setCloseOnEsc true dialog setCloseOnOutsi
  • 在 Yii2 中禁用单个操作的 CSRF 验证

    有没有办法对控制器的某些操作禁用 CSRF 验证 同时对其他操作保持启用状态 就我而言 我有几个可配置的 Action 类 它们旨在注入到控制器中 我无法将 csrf 验证令牌传递到 AJAX 请求中 因为我正在使用的东西是前端的外部 不是
  • NetBeans 7.0 的 Java UML 自动生成 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我需要为我的项目制作 UM
  • Git:仅在将外部分支合并到主分支时防止快进合并

    为了方便查看功能分支何时合并到 master 可以使用 Git 的 no ff将其功能分支合并到主分支时的选项 无需键入即可完成此操作的一种方法 no ff是完全禁用快进合并到 master 中 git config branch mast