如何重置develop branch to master

trr*_*rrm 30 git version-control branch

我有develop&master分支,我的develop分支现在很乱,我想重置它,并把它作为我的副本master.我不知道,如果合并masterdevelop会使他们两个是相同的.在尝试合并后,我遇到了很多冲突,我使用以下方法解决了

git checkout develop
git merge origin/master
//got many conflicts
git checkout . --theirs
Run Code Online (Sandbox Code Playgroud)

这是否足以让develop分支成为相同的副本master

谢谢

Tim*_*vis 48

如果你只是想让它们成为同一个东西

然后

//from Develop and assuming your master is up to date with origin/master
git reset --hard master
Run Code Online (Sandbox Code Playgroud)

  • 这是对我有用的方法...否则你得到关于路径不能硬重置的警告. (14认同)
  • 如果“git push”失败并且更新被拒绝,因为当前分支的尖端位于其远程分支的后面,则“git push -f”。 (11认同)

Amb*_*ber 48

如果你想使develop它们相同master,最简单的方法就是重新创建指针:

git branch -f develop master
Run Code Online (Sandbox Code Playgroud)

或者,如果您已经develop签出:

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

但是请注意,这两个选项将摆脱任何历史develop有它不在master.如果这不合适,您可以通过创建镜像master最新状态的提交来保留它:

git checkout develop
git merge --no-commit master
git checkout --theirs master .
git commit
Run Code Online (Sandbox Code Playgroud)

  • 发现自己处于这种不幸的境地。我使用了最后一个解决方案,但它不会删除不在 master 中的文件。为此,我必须首先执行`git diff-tree -r --diff-filter=D develop master` 来查找文件,然后将它们一一删除,或者通过将它们的路径复制到文件中并运行`猫文件| xargs rm` (3认同)
  • @ra_htial 他们也需要重置它。如果您与其他人共享分支,您可能不想使用前两个选项,除非他们也知道重置并且没有任何待处理的工作。 (2认同)
  • 您应该执行下一个最佳答案中的操作,即在开发分支上执行以下操作: `git reset --hard master` 否则您会收到错误消息 (2认同)