有一个分支A是从develop分支出来的,然后还有一个分支A叫做B(假设),现在的状态是这样的develop --〉A --〉B。一旦我把A合并到develop中,分支B会发生什么。现在我想把最新的develop修改合并到我当前的分支B中,但是合并推送没有显示在www.example.com中github.com但是当我执行git log时,它出现在日志树中。我想将develop分支合并到我自己的分支B中,但是提交没有显示在远程分支中,但是日志树中有一个合并提交。
vyswwuz21#
您在develop上有新的提交,但不在分支B中:
d--d--d--d--D--D (develop) / / a--a (A) \ b--b--b (B)
如果你想基于这些新的(D)提交来测试B,我建议你使用 rebaseB(假设你是唯一一个在做它的人):
B
git rebase --onto develop $(git merge-base B A) B # if there are no new commits on A, you can use instead: git rebase --onto develop A B
这将重放B的所有提交,从A之后的一个 * 开始,或者在B和A之间的共同提交(git merge-base B A)之后,直到B HEAD。
A
git merge-base B A
B HEAD
b'--b'--b' (B) / d--d--d--d--D--D (develop) / / a--a (A)
这样,就不需要将develop这样的集成分支合并到任何东西:它历史没有受到影响。您可以在develop的基础上重写B,并且可以使用developer已经集成的所有内容对其进行测试。
develop
1条答案
按热度按时间vyswwuz21#
您在develop上有新的提交,但不在分支B中:
如果你想基于这些新的(D)提交来测试B,我建议你使用 rebase
B
(假设你是唯一一个在做它的人):这将重放
B
的所有提交,从A
之后的一个 * 开始,或者在B
和A
之间的共同提交(git merge-base B A
)之后,直到B HEAD
。这样,就不需要将
develop
这样的集成分支合并到任何东西:它历史没有受到影响。您可以在
develop
的基础上重写B
,并且可以使用developer已经集成的所有内容对其进行测试。