Git中的"复杂"合并场景

Gra*_*ham 3 git

我被问到是否可以在Git中使用以下内容,这超出了我的知识:

鉴于以下情况:

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

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

MASTER
   \
    cool-feature
     \
     fancy-enhancement
Run Code Online (Sandbox Code Playgroud)

我觉得这应该是可能的,但我不确定如何在两个分支之间得到差异.

spm*_*son 5

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

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

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