哪种方式与git合并?
假设我有两个分支哪种方式与git合并?,git,merge,branch,Git,Merge,Branch,假设我有两个分支 master -- A - - - - - - merge \ / \- develop -- B -- C 现在,如果我想合并它将是一个快进,但我应该这样做吗 git checkout develop git merge master 或 如果我有可能的冲突呢 master -- A - D - - - - - -merge \
master -- A - - - - - - merge
\ /
\- develop -- B -- C
现在,如果我想合并它将是一个快进,但我应该这样做吗
git checkout develop
git merge master
或
如果我有可能的冲突呢
master -- A - D - - - - - -merge
\ /
\- develop -- B -- C
我现在应该合并到开发中还是合并到master中?这有点让人困惑,因此,如果能提供一个好的解释,我们将不胜感激。请在主程序中执行第二个操作,合并 我通常将master重设为origin,将dev重设为master,然后合并。这使得在重设基础时出现冲突;如果执行此操作,则不会出现合并冲突。缺少工作流任务 首先,您的工作流程中缺少一些东西,这使得您很难以真实的方式回答问题。例如:
git rebase -i master
git rebase -i master
git checkout master
git merge --ff-only tmp
git push origin
git branch -d tmp
git checkout develop
git merge master
git push origin
然而,这个过程可能会给develope留下复杂的合并历史,因为从master到develope的重新合并可能并不总是一个快速的合并。这本身不是一个问题,它只是任何包含重定基址的工作流的自然结果。这是需要注意的,但在我看来,为团队提供的灵活性付出的代价是值得的。在gitimmersion,我读到在进行公共回购时,重新定价不是一个好做法,因为它可能会让其他用户感到困惑。我可以用你的常规来避免吗如果分支是公共的,并且与其他人共享,则不要使用rebase。重写公共共享的分支会使团队的其他成员陷入困境。当提交分支的确切历史非常重要时(因为rebase重写了提交历史)。根据上述指导原则,我倾向于对短期的本地分支使用rebase,对公共存储库中的分支使用merge。对,对开发分支使用rebase是可以的,您永远不会对主分支使用rebase。为了完整性,请注意,您的第一个选项实际上是无操作,因为您将签出
dev
(在图表中提交“C”),然后合并master
(提交“A”)你会发现“A”已经出现在dev
分支的历史记录中,因此没有什么可做的。但是,如果在“A”之后在master
上有额外的提交,那将是不同的,但是你的第二个选项也不会是快进的……你是在尝试做基于的事情吗?是的,我想至少是这样的:P New在git和版本控制中,如果您试图遵循该模型,就不应该出现您描述的提交D在master中而不是在develop中的情况。您所有的工作都将进入develop,热修复程序将合并到master和develop中。
git checkout develop
git merge master
git push origin