关于git:合并分支到掌握所有变化?

Merge branch to master with all changes?

本问题已经有最佳答案,请猛点这里访问。

有时我会发现我正在处理一个分支,我想将分支中的所有更改合并到我的主分支中,这样主分支就成了我刚处理的分支的一个重要克隆。是否有一种简单的方法更新master,以便将分支中的所有更改合并到master中?我正在寻找的行为是,master将成为分支的精确克隆。我通常一次将单个冲突合并为主冲突,但是否有更简单的方法可以做到这一点?谢谢你的时间。


如果要保留历史记录,请使用ours合并策略:

1
2
git checkout branch
git merge -s ours master

如果您不关心主分支的历史记录,请重置它:

1
2
git checkout master
git reset --hard branch

(这将放弃您的所有本地更改,并使master的commit无法访问!)

如果您在master中没有任何不在您的分支中的提交,则可以将master快速转发到您的分支:

1
2
3
git checkout branch
git merge master
# or `git merge --ff-only master` to only allow fast-forward


你的解决方案应该是拥有你想成为你的新主人的承诺ID的git reset --hard

网址:http://git-scm.com/2011/07/11/reset.html

编辑:我将标记为重复:如何从另一个分支完全替换Git中的主分支?

看看我提到的副本中的解决方案。但根据需要的结果,我建议的重置可能是解决方案。