Git 将一个分支合并到所有其他分支中

2024-05-18

我知道这个问题已经在这里被问过:https://stackoverflow.com/questions/2329716/merging-changes-from-master-into-all-branches-using-git https://stackoverflow.com/questions/2329716/merging-changes-from-master-into-all-branches-using-git,但我希望看到执行此操作的真实代码。

我有一个主分支和许多功能分支。我希望 master 中所做的所有更改都反映在所有功能分支中。

当我提交到 master 时,所有更改都应该反映在所有其他分支上(基本上,这与检查所有分支并合并 master 相同,但具有自动化过程)。


问题是我需要查看我要合并的分支是否未发布。

如果它们没有发布,您应该重新设置它们的基准。
但检查变基是否确实可行有点棘手:


首先,获取后,您可以轻松查看如果您有尚未推送的本地提交 https://stackoverflow.com/q/4082175/6309:

 git log origin/master..master

        o--o--o (origin/master)
       /
x--x--x--y--y   (master)

在这种情况下,rebase 是完全可以的,除非master已经被推到another来自您的存储库的分支。
但您也可以通过以下方式轻松检查:

git branch -r --contains master

如果有任何远程(-r) 分支包含您想要变基的分支,那么这是一个不太安全的想法,并且最好进行合并。

但是,如果远程分支本身被重新定位(并强制推送),那么您需要小心,如“您如何处理已经重新定位的公共存储库? https://stackoverflow.com/a/20423983/6309":

        o--o--o (OLD origin/master)
       /
x--x--X--y--y   (master)
    \
     o'--o'--o' (origin/master, as seen after a 'git fetch')

盲目变基master在之上origin/master将重放提交X,这是left out when origin/master被重新设定。不好。

今天(2014年1月),处理这个案件的唯一方法是:

  • 创建一个 'tmp' 标记分支origin/master,
  • git fetch,
  • 检查是否git branch --contain tmp lists origin/master(它已被获取,如果它被重新设置并强制推送,则可能具有不同的历史记录)。

明天(git 1.9,2014 年第一季度),您无需在获取之前标记远程分支:

fork_point=$(git merge-base --fork-point origin/upstreamBranch yourBranch)
# return X
git rebase --onto origin/upstreamBranch $fork_point yourBranch

回顾一下:

After a git fetch(标记后origin/master before获取),

  • if git log origin/master..master返回提交来自master哪些不属于origin/master(这意味着那些本地提交还没有被推送到origin/master)
  • AND if git branch -r --contains master是空的(意思是master没有被推送到其他任何地方,在您可以通过a看到的任何远程跟踪分支上git fetch)

Then:

  • if origin/master包括标记分支 'tmp' (意义origin/master本身没有重新定位),你可以git rebase origin/master master.
  • 其他:你可以git rebase --onto origin/master $(git merge-base tmp master) master
    (你需要tmp在这里仅对您的分支进行变基。 Git 1.9 将不再需要 tmp 分支)

在任何其他情况下:merge origin/master to master.

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

Git 将一个分支合并到所有其他分支中 的相关文章

  • 如何在没有本地存储库的情况下在远程运行 git 命令

    我有一个名为 git export 的脚本 它可以帮助我导出远程存储库 它是这样运行的 git export http host com git repo lt t tag or b branch or c commit gt local
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • Jenkins groovy - 如何从最新提交中检索标签?

    从中获取最新提交branchName 我们运行下面的代码 treeMapData git branch branchName credentialsId credential url gitLabServer projectName rep
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支
  • 如何摆脱 gerrit 中的错误依赖关系

    看起来 当使用 gerrit 时 默认情况下所有更改都依赖于前一个更改 我不会分支进行新的更改 我只是在主分支上工作 然后将提交的更改推送到远程源 主分支 即使两次提交彼此无关 每次都会创建依赖关系 我遇到了一些问题 这让我认为我没有正确地
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • 如何使用 git 撤消所有空白更改

    我有一个 git 存储库 我在其中本地替换了很多文件 git status 现在显示许多修改的文件 有些是 真正修改过的 其他的只是行结尾不同 我希望那些仅通过行结尾不同的内容消失 git重置它们 但是 我似乎找不到 linux pipin
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • 如何解决git中文件重命名文件夹冲突?

    我有以下问题 我有两个分支 Branch1 和 Branch2 的一些共同提交 A Branch1 是一个公共分支 位于服务器上 Branch2 是本地分支 在 Branch1 中我更改了文件 BAD folder somefile txt
  • 设置单独的遥控器以仅推送和拉动子文件夹

    假设我有两个存储库 repo A and repo B 其中包含一个文件夹 其中的代码与存储库 A 中的代码类似 这实际上如何发生并不重要 但是好吧 让我们假设我刚刚从 A 复制了内容 现在我想要以下内容 就像我在 repo A 中习惯的那
  • 将代码从没有权限的存储库推送到私有存储库?

    我有一个来自外部存储库 我们称之为 ExRepo 的文件夹 我没有任何推送权限 我有一个名为 MyOwnRepo 的个人存储库 如何获取 ExRepo 并将其合并到 MyOwnRepo 中 我已经尝试过这个 C Users
  • 执行 git stash 、 git checkout mybranch 、 git stash pop 的管道命令是什么?

    我想创建一个执行以下操作的脚本 1 git 存储 2 git checkout myBranch 3 git stash 弹出 有哪些 git 管道命令可以替代上述 git 瓷器命令 Edit 根据 Mark Adelsberger 和 T
  • 无法快速删除 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
  • 如何正确设置 Azure DevOps 和 GitHub 之间的双向同步

    我想通过执行以下操作在 Azure DevOps 和 GitHub 之间创建双向同步 使用 CI 触发器创建 Azure DevOps 管道 将更改从 Azure DevOps 存储库推送到 GitHub 中的分支 创建第二个管道 用于侦听
  • Git 用户配置文件 - 自定义忽略

    我们有一个由 5 名开发人员组成的团队致力于硬件项目 我们有一个 user config h 文件 其中包含每个用户的特定环境和偏好的 defines 例如他们使用的硬件版本 是否应该打开声音等 目前 该文件位于我们的 gitignore
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • 本地分支显示在 GitHub 的“网络”视图上

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

随机推荐

  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 如何使用 Webpack 缩小 ES6 代码?

    我正在使用 webpack 并想要部署我的网站 如果我缩小并捆绑 JavaScript 代码 则会出现以下错误 解析错误 意外标记 名称 Button 这是我未捆绑的代码 use strict export class Button lt
  • 当 Azure 数据工厂管道仍在运行时停止运行

    我有一个Azure Data Factory Pipeline 我的触发器已设置为每 5 分钟一次 有时我的 Pipeline 需要 5 分钟以上才能完成其工作 在这种情况下 触发器再次运行并创建管道的另一个实例 并且同一管道的两个实例在我
  • 尝试安装已安装 vimballPlugin 的 vimball

    我想安装这个plugin http www vim org scripts download script php src id 16854 所以首先我提取 zip 的内容 然后执行以下操作 vim camelcasemotion vba
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • ASPNET Core OIDC 关联失败

    我在 StackOverflow 上查看了一堆与此类似的类似问题 但没有一个解决方案对我有用 这个问题快把我逼疯了 我与这里的许多类似服务器的主要区别在于 负载均衡器后面只有一台服务器 因此问题不在于我的请求发送到不同的服务器 我已经实现了
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 检查 DBNull 会引发 StrongTypingException

    我正在使用数据集从数据库中提取数据 一行中的一个字段是NULL 我知道这个 但是 以下 vb net 代码会抛出StrongTypingException 在数据集设计器中自动生成的 get SomeField 方法中 If Not IsD
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 字符串池可以包含两个具有相同值的字符串吗? [复制]

    这个问题在这里已经有答案了 字符串池可以包含两个具有相同值的字符串吗 String str abc String str1 new String abc Will the second statement with new operator
  • 当变量取特定值时如何使 PyCharm 中断?

    我有一本大字典 其中一些元素偶尔会出现非法值 我想弄清楚非法值从何而来 PyCharm 应该不断监视我的字典的值 一旦它们中的任何一个取了非法值 它就应该中断并让我检查程序的状态 我知道我可以通过为我的字典创建一个 getter sette
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 从表达式函数获取父属性

    假设我有以下课程 public class Model public AnotherModel InnerModel get set public class AnotherModel public String Value get set
  • 使用带有少量项目的 v-slide-group 时出现问题

    我在使用 v slide group 时遇到问题 有时我有 2 3 个项目 有时我有 10 个或更多项目 但项目较少时 它不会显示箭头 幻灯片项目也不居中 这是我的 HTML div div
  • 带有 RankNTypes 扩展的奇怪类型推断

    我正在尝试在 Haskell 中尝试 System F 类型 并通过以下方式实现了自然数的 Church 编码type 当加载这段代码时 OPTIONS GHC Wall LANGUAGE RankNTypes type CNat fora
  • 有什么所谓的 GUI 标准吗?

    GUI 是大多数软件产品的重要领域之一 我想知道是否有一个叫做 GUI 标准的东西 它定义了 GUI 设计的最佳实践 但很深入 例如 有任何定义包含文本框的最佳大小或 Windows 窗体的宽度和高度之间的比率 只是为了给用户提供最大的便利
  • C++ 中的最大特征值(和相应的特征向量)

    在 C 中计算大型密集矩阵的 k 个最大特征值和特征向量的最简单和最快的方法 当然需要一些库 是什么 我正在寻找 MATLAB 的等效工具eigs功能 我已经浏览过 Armadillo 和 Eigen 但找不到一个 并且在我的情况下计算所有
  • 如何制作在手机和平​​板电脑上使用的响应式Android应用程序?

    我创建了一个 Android 应用程序 当我运行我的应用程序时Mobile Phone它工作得很好 但是当我跑进去时Tablet应用程序的布局已更改 那么 如何制作响应式Android应用程序用于Mobile并且也在Tablet 在Andr
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • Git 将一个分支合并到所有其他分支中

    我知道这个问题已经在这里被问过 https stackoverflow com questions 2329716 merging changes from master into all branches using git https