如何将分支复制到git中的另一个现有分支

时间:2015-09-14 09:42:10

标签: git github merge git-branch

我想将一个分支中的所有更改推送到另一个分支(现有分支)而不进行合并。

例如,考虑两个分支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选项来执行此操作。我不想每次都删除分支只是为了创建一个具有相同名称的新分支。

由于

3 个答案:

答案 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