如何使用 master 覆盖 Git 中的分支

Cor*_*ell 50 git

我有一个完全过时的旧开发分支。我不想删除它,但我确实想用 master 分支完全替换它的内容。意思是,我想要 dev_branch = master

我试过:

git merge -s ours dev_branch
Run Code Online (Sandbox Code Playgroud)

虽然没有用...

slh*_*hck 77

如果您希望从masterin 进行所有更改dev_branch,则:

git checkout dev_branch
git reset --hard master
Run Code Online (Sandbox Code Playgroud)

这仅在其他人尚未克隆存储库时才有效。

如果您已经dev_branch推送到远程,则必须执行以下操作:

git push --force
Run Code Online (Sandbox Code Playgroud)

强制推送到遥控器。警告:对于之前克隆它的人来说,这将打破分支的历史!然后,其他人不得不做git pull --rebasedev_branch到什么变化。


您还可以将 dev 分支重命名为旧的,然后master使用相同的名称创建一个新分支:

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch
Run Code Online (Sandbox Code Playgroud)

或者,使用该ours策略——不知道为什么它对你不起作用:

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master
Run Code Online (Sandbox Code Playgroud)