我想将一个分支中的所有更改推送到另一个分支(现有分支)而不进行合并。
例如,考虑两个分支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
有没有更好的方法通过合并命令中的一些--force选项来执行此操作。我不想每次都删除分支只是为了创建一个具有相同名称的新分支。
由于
答案 0 :(得分:0)
从您要清理的分支开始,branch2
。然后,以该分支为基础,并删除该分支唯一的所有提交。
branch2
现在应该处于与您首次创建时相同的状态。现在要“克隆”来自branch1
的所有提交,只需将branch2
重新设置为branch1
答案 1 :(得分:0)
git switch branch1
git pull
git push origin branch1:branch2 --force-with-lease #assume the remote name is origin
git branch -f branch2 origin/branch2 #reset the local branch branch2
答案 2 :(得分:-2)
git checkout branchA
git merge -X theirs branchB