在git中,如何将分支重新设置为master

问题描述

我有new_branch和master。

大多数好的工作都在new_branch中完成。 然后有人在检查master时犯了一些错误

我现在不想合并new_branch来掌握它,因为它太乱了。

是否有一种方法可以强制将new_branch重新设置为主节点。

意思是,我希望new_branch成为master,而忽略master中所做的一切。

解决方法

如果要保留master的历史记录,可以对master进行新的提交。提交使master与new_branch具有相同的代码。这样,您无需强行推入。

git checkout master
git fetch origin master
git reset FETCH_HEAD --hard
git merge $(git commit-tree -p HEAD -m "foo" new_branch^{tree})
git push origin master

如果您不想保留master的历史记录,可以将master重置为new_branch并强制推送以覆盖远程存储库上的master。

git checkout master
git reset new_branch --hard
git push origin -f master