我有两个分支。第一个分支,我们称其为branch_A
是从master
创建的。那里有几次提交和推送,之后我从branch_B
创建了另一个分支branch_A
。现在,在这里按了几下,我意识到我需要在branch_A
上进行一些修复,但是我还需要在branch_B
上进行这些更改。
将采取哪些步骤?我是否应该结帐branch_A
,进行更改并将其推送,然后结帐branch_B
并进行拉动?是pull origin branch_A
还是pull origin branch_B
?
答案 0 :(得分:1)
如果您尚未推送branch_B
,那么我建议您重新设置基准:
# from branch_B
git rebase branch_A
这将重写branch_B
,以引入branch_A
的最新更改,包括您需要在后一个分支中进行的所有修复。重新设置完成后,branch_B
似乎是在branch_A
之上创建的,从未解决您的问题。
请注意,在重新设置基准之后,您将不得不强制按下branch_B
:
git push --force origin branch_B
强行推入的原因是您已经重写了该分支的历史记录。
如果branch_B
已被推送 并由您以外的其他人共享,那么选择修复提交可能最有意义:
# from branch_B
git cherry-pick abc123
在这里,将abc123
替换为您在branch_A
中所做的修复中的提交哈希。