将更改推送到git的正确方法

时间:2019-05-14 14:51:25

标签: git

我有两个分支。第一个分支,我们称其为branch_A是从master创建的。那里有几次提交和推送,之后我从branch_B创建了另一个分支branch_A。现在,在这里按了几下,我意识到我需要在branch_A上进行一些修复,但是我还需要在branch_B上进行这些更改。

将采取哪些步骤?我是否应该结帐branch_A,进行更改并将其推送,然后结帐branch_B并进行拉动?是pull origin branch_A还是pull origin branch_B

1 个答案:

答案 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中所做的修复中的提交哈希。