我从master
创建了新分支,然后从新分支创建了另一个分支:
master --> A --> B
后来,我发现应该在分支A
上修复某些问题,因此我回到那里,并进行了这些更改。我可以将这些更改推送到分支A
上,然后再将其与分支B
合并(我知道我可以直接在分支B
上进行那些更改,但是签出分支时出错了A
,现在这里是更改...)还是我应该从分支A
创建另一个分支并将这些更改推送到该分支,然后将其与分支B
合并?
master --> A --> B
|
---> C
如果两种方法都可行,那么两者之间有什么区别,一种方法比另一种更好?
答案 0 :(得分:3)
B
进行任何提交,则只需在分支A
上进行所需的修复,然后将其合并到分支B
。由于分支B
上没有要合并的提交,因此不会显示合并提交。 B
进行了提交,则可以从分支C
创建一个临时分支(例如hotfix
,A
),然后合并它与A
和B
一起使用,否则您可以直接向分支A
进行提交,然后与B
合并。
这两种方法都是正确的,如果修补程序很小,那么您可以直接在A
上进行提交,否则创建一个新分支并继续。答案 1 :(得分:1)
我假设你有
master
。A
分支创建一个新分支master
,并使用命令git checkout -b A
进行结帐B
分支创建另一个分支A
,并使用命令git checkout -b B
进行结帐稍后,您要更改分支A中的代码。是的,您可以推送更改,为此,您应该通过git命令A
选择分支git checkout A
。进行更改并提交到分支A
中。
如果要合并分支A
中分支B
的更改,请执行以下步骤:
B
选择分支git checkout B
A
与分支git merge A
合并您可以使用git命令git branch
找到当前分支。
是的,您可以同时使用两种方法来实现目标
A
中进行更改,并与分支B
合并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