我想把一个分支的所有变化推到另一个分支(现有分支)而不合并。
例如,考虑两个分支branch1到branch2。branch1和branch2分别跟踪origin/branch1和origin/branch2。
branch1已提交a、b、c、d、e、f
Branch2提交了A、B、D、F
我想把Branch2做得和Branch1一模一样。樱桃采摘和合并会产生冲突,我不想花时间去解决,因为我所要做的就是,盲目地将branch1复制到branch2。
我可以通过

git checkout branch1 # Moves to branch1
git push origin :branch2 # Deletes remote branch origin/branch2
git branch -d branch2 # Deletes the local copy of this branch
git pull
git push origin HEAD:branch2 # Creates new branch in remote repository from the HEAD at local branch branch1

有没有更好的方法可以通过merge命令中的一些-force选项来实现。我不想每次都删除这个分支只是为了创建一个同名的新分支。
谢谢

最佳答案

从你想清理的分支开始,在你的情况下。然后,在该分支上重新定位并删除该分支唯一的所有提交。
branch2现在应该与您第一次创建时处于相同的状态。现在要“克隆”来自branch2的所有提交,只需将branch1重设为branch2

07-24 12:49