Git推向了一个分支,该分支本身有了新的分支

时间:2019-06-04 09:52:56

标签: git

我从master创建了新分支,然后从新分支创建了另一个分支:

master --> A --> B

后来,我发现应该在分支A上修复某些问题,因此我回到那里,并进行了这些更改。我可以将这些更改推送到分支A上,然后再将其与分支B合并(我知道我可以直接在分支B上进行那些更改,但是签出分支时出错了A,现在这里是更改...)还是我应该从分支A创建另一个分支并将这些更改推送到该分支,然后将其与分支B合并?

master --> A --> B 
           |         
            ---> C 

如果两种方法都可行,那么两者之间有什么区别,一种方法比另一种更好?

3 个答案:

答案 0 :(得分:3)

  • 如果尚未对分支B进行任何提交,则只需在分支A上进行所需的修复,然后将其合并到分支B。由于分支B上没有要合并的提交,因此不会显示合并提交。
  • 尽管,如果对分支B进行了提交,则可以从分支C创建一个临时分支(例如hotfixA),然后合并它与AB一起使用,否则您可以直接向分支A进行提交,然后与B合并。 这两种方法都是正确的,如果修补程序很小,那么您可以直接在A上进行提交,否则创建一个新分支并继续。

答案 1 :(得分:1)

我假设你有

  1. 创建了第一个分支,即master
  2. 通过选择A分支创建一个新分支master,并使用命令git checkout -b A进行结帐
  3. 通过选择B分支创建另一个分支A,并使用命令git checkout -b B进行结帐

稍后,您要更改分支A中的代码。是的,您可以推送更改,为此,您应该通过git命令A选择分支git checkout A。进行更改并提交到分支A中。

如果要合并分支A中分支B的更改,请执行以下步骤:

  1. 使用git命令B选择分支git checkout B
  2. 使用git命令A与分支git merge A合并

您可以使用git命令git branch找到当前分支。

是的,您可以同时使用两种方法来实现目标

  1. 在分支A中进行更改,并与分支B合并
  2. 从分支A创建一个新分支,在新分支中进行更改,然后与分支B合并。

在第二种方法中,我们不必要从分支A创建一个额外的分支。 仅供参考,如果您将分支A与分支B合并,则不会删除分支A。分支A仍然存在,除非您使用git命令git branch -d source-branch删除分支为止。

答案 2 :(得分:0)

您可以在分支A中进行更改,然后重新设置分支B的基准。 这是有关如何变基的信息: https://git-scm.com/book/en/v2/Git-Branching-Rebasing