Git中的“复杂”合并场景

时间:2011-02-04 09:46:23

标签: git

我被问到Git中是否可以使用以下内容,这是我所知道的:

鉴于以下情况:

  • 我从主干创建一个新的分支“cool-feature”并在其中做一些工作
  • 我从“酷炫功能”中创建另一个分支“花式增强”并在其中做一些工作

我是否有可能在酷炫功能和花式增强功能之间获得差异,并且只能将其提交到中继线?那么为酷炫功能添加的任何内容都会被遗忘?

MASTER
   \
    cool-feature
     \
     fancy-enhancement

对我来说这应该是可行的,但我不确定如何在两个分支之间得到差异。

1 个答案:

答案 0 :(得分:5)

使用“git diff branch1..branch2”然后合并它吐出的差异,或者更好的“git log branch1..branch2”然后挑选你需要的提交。

我认为最好的选择,特别是如果你有很多提交,就是使用interactive rebase。我只使用几次提交或更少的diff和log方法(实际上我根本不会使用diff方法,因为你丢失了日志消息)。

请确保您在新分支上而不是直接在主分支上执行所有操作,因此如果它中断,您可以回滚