在进行Git合并时,我是否需要以结帐的相反顺序进行合并?

时间:2019-08-09 22:57:57

标签: git

假设我有一个顶级Git分支“ dev”,并且创建了一个新的功能分支“ feature1”。

git checkout -b feature1 dev

现在,我决定当我在此分支中时需要修复一个错误,因此我创建了第二个分支“ bug1”。

git checkout -b bugfix feature1

现在我有了这个分支结构:

dev
  feature1
    bug1

我想将新功能和错误修复合并回我的dev分支。为此,是否需要像这样以相反的顺序合并每个分支(即“追溯我的步骤”)?

git checkout feature1
git merge --no-ff bug1
git checkout dev
git merge --no-ff feature1

还是我可以像这样从bug1直接返回到开发人员,然后仍然选择新的功能代码?

git checkout dev
git merge --no-ff bug1

请,关于这是我当前的工作流程,我不满意关于重新设置基准或以其他方式进行更改的更好评论,我对此感到满意。如果仅分支并使用检出和合并功能,那么这两者在向我的dev Git分支添加新功能和错误修复方面是否具有相同的效果?

2 个答案:

答案 0 :(得分:1)

如果import { USA } from './Test'; console.log(USA); Test.js的祖先(即feature1包含bug1中的所有提交),则将bug1合并到{{1 }}会产生与将feature1合并到bug1,然后将dev合并到bug1中相同的内容(相同的Git树)。

这是因为在这种情况下,将feature1合并到feature1中会产生与dev相同的Git树,因为它等同于快进(只是您表示您没有这样做)。想要一个)。本质上,您正在创建一个合并,其中一侧未更改,而另一侧已更改,在这种情况下,Git将使用所有已更改的组件。

如果还有bug1中未包含的对feature1的其他提交,则显然它们是不等效的。

答案 1 :(得分:0)

bug1合并到dev会将dev上的所有提交都带入bug1,其中包括您从{{ 1}}到feature1,或者如果您从未从feature1合并到bug1,那将是在feature1之外创建bug1之前。

简而言之,如果您没有在bug1上进行的对feature1的提交,则可以直接从feature1合并到bug1。否则,您需要将两者都合并到bug1,但是顺序并不重要。