当前位置: 首页 > 知识库问答 >
问题:

如何使分支与主分支保持同步/更新?

司寇书
2023-03-14

目前git正在做我的头,我不能想出以下最好的解决方案。

有两个分支,一个叫master,一个叫mobiledevicesupport。我希望将mobiledevicesupport保持为一个连续分支,只要mobiledevicesupport稳定,它就会与主分支合并/同步。这将把mobiledevicesupport中的更改合并到master中,但也会把master中的所有更改都合并到mobiledevicesupport中,以便可以继续处理branch,并改进或修改其功能。这需要与中央存储库和多个开发人员一起工作。

请举一个其他人使用的类似工作流程的例子,或者只是告诉我这个想法是否愚蠢,我应该考虑其他选择。目前,工作流程似乎很合理,但我只是不知道如何使git以这种方式工作。

谢谢,非常感谢大家的帮助。

更新1:如果我要将master合并到mobile edevicesupport中,并将mobile edevice支持合并到master中,我是否会在两个分支中复制提交。还是git足够聪明,可以计算出我已经将最新更改从分支A拉到分支B,并将合并提交C添加到分支B。我已经将最新更改从分支B拉到分支A,并将合并提交D添加到分支A?

我本来打算贴一张图片,但是我没有足够的名气,所以我想下面的插图可以了。两个分支持续运行,经常双向合并。我不确定的关键是git将如何完成提交,它会在合并时用来自另一个分支的提交填充其中一个分支,还是保持干净。我以前使用过rebase,但它似乎结束了分支,并将所有提交放入主节点,或者我做错了。谢谢迄今为止的帮助。

master
A--B--C-----H--I--J--M--N
       \   /    \
mobile  \ /      \
D--E--F--G--------K--L

共有3个答案

薛彭薄
2023-03-14

concept47的方法是正确的方法,但我建议与--no-ff选项合并,以保持提交历史记录清晰。

git checkout develop
git pull --rebase
git checkout NewFeatureBranch
git merge --no-ff master
施永宁
2023-03-14

无论何时,当您想从主工作分支获得变更时,都要执行< code>git rebase

当您的工作分支准备就绪时,再次衍合,然后执行 git 推送

包永新
2023-03-14

是的,只需执行以下操作:

git checkout master
git pull
git checkout mobiledevicesupport
git merge master

以保持移动设备支持与主设备同步。

然后,当您准备好将mobiledevicesupport放入master时,首先,像上面那样合并到master中,然后:

git checkout master
git merge mobiledevicesupport
git push origin master

就是这样。

这里的假设是Mobiexxx是一个主题分支,其工作还没有准备好进入您的主分支。所以只有当mobile edevicesupport处于良好位置时才合并到master。

 类似资料:
  • 问题内容: 有什么方法可以将成功构建的功能分支推送到另一个分支? 我想要这样的东西: Git存储库(Gitorious / GitHub等)。分行: 掌握(当前项目的代码) 质量保证(代码等待质量检查的分支机构) 功能分支(许多远程分支,开发人员可以在其中开发其功能) 开发人员应仅具有对母版的读取访问权限,并且对其功能分支进行读/写QA读/写质量保证分支TeamCity-读/写母版,质量保证,仅对

  • case 和 select 结构并不属于循环结构,因为它们并没有反复执行代码块。但是和循环结构相似的是,它们会根据代码块顶部或尾部的条件控制程序流。 下面介绍两种在代码块中控制程序流的方法: case (in) / esac 在 shell 脚本中,case 模拟了 C/C++ 语言中的 switch,可以根据条件跳转到其中一个分支。其相当于简写版的 if/then/else 语句。很适合用来创建

  • 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上

  • 分支目标预测(BTP)与分支预测(BP)不同。我知道BTP会找到分支将跳转到的位置,而BP只是决定可能采取哪个分支。 BTP依赖BP吗,如果BTP不使用BP来预测哪个分支被采用,它怎么可能知道分支的目标呢? 我不明白为什么会有这么大的差异?一旦分支被预测为被占用,找到目标并不像读取指令中的地址一样简单吗?

  • Git 有几个实现大部的分支及合并功能的实用命令。 git branch git branch 命令实际上是某种程度上的分支管理工具。 它可以列出你所有的分支、创建新分支、删除分支及重命名分支。 Git 分支 一节主要是为 branch 命令来设计的,它贯穿了整个章节。 首先,我们在 分支创建 一节中介绍了它,然后我们在 分支管理 一节中介绍了它的其它大部分特性(列举及删除)。 在 跟踪分支 一节

  • 分支是我最喜欢的 Git 特性之一。如果你用过其他版本控制系统,把你所知的分支给忘记,倒可能更有帮助些 ——事实上,以我们使用分支的方式,把 Git 的分支看作 上下文 反而更合适。当你检出分支时,你可以在两三个不同的分支之间来回切换。 简而言之,你可以执行 git branch (branchname) 来创建分支,使用 git checkout (branchname) 命令切换到该分支,在该