Git合并方向错误?

Git合并方向错误?,git,Git,Git仍然时常让我困惑 我有一个舞台和一个主分支。通常开发发生在临时分支上,该分支定期合并到主分支中 但是,已经直接向主分支作出了一些承诺。这意味着登台分支中缺少更新 我如何使我的暂存分支与主机恢复最新状态?我认为合并应该总是在一个方向上进行(即,staging>master),而合并master>staging不是一种方式,对吗 是的。虽然从技术上讲,合并可以向任何一个方向进行,但如果您将master合并到一个feature分支中,它就不再是一个feature分支,而只是一堆带有特征元素的随机

Git仍然时常让我困惑

我有一个舞台和一个主分支。通常开发发生在临时分支上,该分支定期合并到主分支中

但是,已经直接向主分支作出了一些承诺。这意味着登台分支中缺少更新


我如何使我的暂存分支与主机恢复最新状态?我认为合并应该总是在一个方向上进行(即,staging>master),而合并master>staging不是一种方式,对吗

是的。虽然从技术上讲,合并可以向任何一个方向进行,但如果您将master合并到一个feature分支中,它就不再是一个feature分支,而只是一堆带有特征元素的随机内容。仅当最终合并为挤压时才执行此操作

如果你计划以正常的方式合并回来,你的主要计划就是加快速度。忽略主节点,并在最终合并时解决差异。只需要把你的树枝一个人留下

若你们不能走得快,最好时不时地在主节点上重新设置你们的分支。(确保每一次提交都能正常工作!)一个折中的解决方案是将某些部分合并回去,然后只对其余部分重新设置基础


另一个可行的选择是挑选一些真正必须有补丁的补丁。

我认为时不时地将
master
合并到
staging
是一个非常合理的过程。这将使
暂存
与master中的最新补丁一起更新

在此之后,您可以继续进行
staging
,偶尔通过合并将其更新

staging
达到稳定状态时,将其合并到
master

分支机构之间的合并不一定是单向的,也不一定是一次性交易


(当然,以上并不是唯一可能的分支策略。请参阅)

在某些情况下,我通常使用
git-rebase
使我的分支随着对master的更改和/或合并而更新

通用工作流:

  • 从主人那里分支
  • 在分行工作
  • 从主节点重新设置基础以捕获分支中不存在的主节点中的更改
  • 解决任何问题后合并到主机

我不确定我是否同意这一评估。当在master上存在冲突时,如何更新您的特性分支?那是随机的吗?当其他要素依赖于您的要素分支时,重基将起作用。如果它是以任何方式共享的,那么重定基址会导致比修复问题更多的问题。另外,如果你要把樱桃采摘合并回母版,它也不是一个很好的解决方案。在两个不同的地方看到相同的变化是令人困惑的,而且很难区分变化首先发生在哪里。功能分支应该有显示该功能的补丁,对吗?如果我的合并你得到了大量的错误修复,其他功能,等等,三角洲会是什么?使用“合并”拾取的所有修补程序都被视为包含。当然,分支策略和战术必须达成一致,任何建议都可能被断章取义。如果目标是将其合并到master,那么我真的看不出问题所在。OP谈论的是一个临时分支,而不是功能分支。听起来像是
master
==稳定分支和
staging
==开发分支。将master合并到staging中有什么可怕的?我不一定主张这样做,但从git的角度来看,这样做没有什么坏处。当采用这种方法时,查看历史确实会变得杂乱无章,这就是我不提倡它的原因。我建议使用
git-rebase
vs.a
git-merge
将主分支上的任何更改带到staging,并在将staging移动到master时使用“git-merge”。@Jordan如果
staging
是本地分支,我会同意。但是像
staging
这样的名称听起来不像是本地的。如果
staging
是本地分支还是远程分支,那又有什么关系呢?@Jordan您不应该重新设置推送到公共存储库的提交的基础。这会干扰其他人的工作,因为他们可能基于他重新设置复制的原始提交。看见