【问题标题】:How to merge a branch in Git to another branch with different remote repoisitry如何将 Git 中的一个分支合并到另一个具有不同远程存储库的分支
【发布时间】:2017-10-19 14:28:18
【问题描述】:

我在 Git 中有以下结构:

-master
--dev   (check out form master)
---feature1   (check out form dev)
---feature2   (check out form dev)

当我们需要进行热发布时,我们会从 master 分支中进行检查,如下所示:

-master
--hotrelease.v7.9 (check out from master)

我将来自 hotrelease.v7.9 的拉取请求合并到 master 并发布它。但是我关心的是合并一个拉取请求到开发分支以将我的代码推送到开发分支。

但是 dev 分支与从 master 签出的热版本没有更新的问题。

【问题讨论】:

  • 如果你已经将hot release 合并到master 中,那么你只需要将master 合并到dev 中。这对我来说听起来很简单。 (您可能还需要将 dev 合并到 feature1 等中,以赶上它们。)
  • 我试过这个解决方案,但主分支和开发分支是不同的源存储库。在发布结束时,我们将 dev 合并到 master 但在热发布的情况下,我不需要对 dev 和热分支进行双重开发。我关心的是提交热发布分支并将其与 master 合并,然后将其与 dev 合并,而不是在 dev 中重写相同的代码并推送它。
  • 合并应该让你免于双重开发。为什么你反对将热发布合并到你的开发分支中?如果没有冲突,您也许可以只将 dev 合并到 master 中,但是您需要在某个时候将 master 合并回 dev 中,否则您的 dev 分支将偏离 master 太远。

标签: git git-branch git-merge pull-request


【解决方案1】:

补丁发布后推送到master

将修补程序推送到 master

  1. 如果有人推送,切换到 master 分支并获取最新信息

git 结帐大师

git 拉

  1. 如果在您处理修补程序时有人将他们的更改推送到 master,则更改为 hotfixbranch 并将 master 合并到 hotfix,这样您可能会遇到需要解决的冲突

git checkout 修补程序

git merge --no-ff origin master

  1. 将修补程序分支合并到 master

git 结帐大师

git merge --no-ff origin hotfix-branch-name

合并 master to development 到 feature to getlatest 到各个功能分支。

第 1 步:获取最新开发成果

git 结帐大师

git 拉

git checkout 开发

git 拉

git merge --no-ff origin master # 从 master 获取最新的 chnages 来开发

第 2 步:将开发合并到功能 1 以从开发中获取最新信息,以便功能 1 获得热门更改。

git 结帐功能1

git merge --no-ff origin develop

git push -u origin feature1

第 3 步:对 feature2 分支重复相同的操作

【讨论】:

  • 感谢金娜的评论。我关心的是在发布后将 hotfix 分支合并到 dev 分支(这意味着我做了从 hotfix 到 master 的合并)并且我没有询问 feature 分支。
  • 你的hotfix合并到master,master合并到develop,从develop我们合并develop到featurebranch
  • 现在为修补程序更新了我的答案。甚至对于功能分支。如果对您有用,请接受答案。
  • 我会测试您的建议并回复您。谢谢@Jinna Balu。
猜你喜欢
  • 2014-06-13
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 2023-03-14
  • 2021-05-11
  • 2013-11-09
  • 1970-01-01
相关资源
最近更新 更多