有时,我会在一个分支上工作,想将该分支的所有更改合并到我的主分支中,以便主分支本质上成为我刚刚使用的分支的克隆。有没有一种简单的方法来更新主分支,使得分支的所有更改都合并到主分支中?我希望的行为是主分支变成分支的精确克隆。通常我会逐个冲突地合并到主分支中,但是否有更容易的方法来做这件事呢?感谢您的时间。
git reset --hard
带上你想要成为新主分支的提交 ID 应该是你的解决方案。
http://git-scm.com/2011/07/11/reset.html
编辑:我会将其标记为重复: 如何从另一个分支完全替换git中的主分支?
看看我提到的重复解决方案。但根据所需结果,我建议的重置可能是解决方案。
如果您想保留历史记录,请使用ours
合并策略:
git checkout branch
git merge -s ours master
如果您不关心主分支的历史记录,请重置它:
git checkout master
git reset --hard branch
(这将丢弃您所有的本地更改,并使主提交不可达!)
如果您在主分支中没有任何提交不在您的分支中,则可以将主分支快进到您的分支:
git checkout branch
git merge master
# or `git merge --ff-only master` to only allow fast-forward
--ff-only
吗? - SpinUp __ A Davis--ff-only
,感谢您指出 :) 至于合并的方向,OP问道“[这样]主分支将成为分支的精确克隆”,这就是这些命令所做的。 - knittl