我克隆了一个来自master的repo,我需要从其他三个分支中提取和合并更改。第一次拉动很顺利。但是在第二次拉动时,我遇到了合并冲突,除非我修复冲突并提交,否则我无法从最后一个分支拉出来。但是,我不想承诺Master分支或推送任何东西。我甚至不能创建新的分支。我只是想测试,看看我是否拉动并合并三个分支,它们将起作用。
我正在使用git pull origin branch_name
让我们首先了解一下你想要做的事情。
你不想影响master
;但如果合并没有冲突,它将在master
上创建一个合并提交(就像你解决冲突并立即提交一样)。在没有创建提交的情况下合并多个分支本质上是不可能的(当然不值得制定方法的麻烦)。
然而,这真的不是什么大不了的事,因为(1)如果你愿意,你总是可以创建一个临时分支(或者甚至使用分离的头状态),(2)即使你提交它,你也可以不用推动了合并提交;只有当你推动它们然后从分支历史中删除它们才会变得麻烦。
从您所在的位置,您可以完成合并,也可以中止它(在这种情况下,您最终必须重新启动它然后完成它)。我会完成它。如果你想立即将master
移回原处,那么在完成合并之后就可以了
git reset --hard HEAD^
然后
git checkout HEAD@{1}
您现在将处于分离头状态,当前结帐是包含合并结果的悬空提交。如果您愿意,此时可以创建临时分支
git chekcout -b <temp_branch_name>
其中<temp_branch_name>
是你想称之为分支的任何东西。
然后完成您的其他合并,进行测试。完成后,您可以返回主控,如果您创建了临时分支,则可以将其删除
git checkout master
git branch -D <temp_branch_name>
当然另一种选择是在master
上进行所有合并,运行测试,然后
git reset --hard HEAD~3
回滚3个合并提交。 (同样,记住这个选项的前提是你不要推动master
- 也许不要拉它 - 在合并存在的时候。)