如何在git中覆盖另一个分支的分支

时间:2014-12-03 01:55:59

标签: git version-control branch

我有feature分支,然后是master分支。

我将feature复制到feature1并将主副本复制到master1

然后我

git checkout master1
git merge feature1
# Resolved all conflicts and commited

然后我去了

git checkout master
git rebase master1

然后我再对master做了1次修复以解决问题

现在我拥有我喜欢的主分支,但我无法推动它。 理想情况下,我希望在我之前的feature分支

上有这个新的主分支代码

所以我以前的所有提交都在那里,我可以像以前一样继续提交

enter image description here

图片顶部42bb中的SO是我的主人HEAD

和底部161a是我的功能分支。

我希望我的功能分支HEAD42bb,或者可能是功能分支上的新提交,等于42bb提交

我这样做但不确定那是不对

我的功能分支

git reset --hard master

1 个答案:

答案 0 :(得分:1)

  

我希望我的功能分支HEAD为42bb

git checkout feature 
# standard warning about reset --hard being working directory unsafe 
git reset --hard HEAD
  

可能是功能分支上的新提交,等于42bb commit

这个有点复杂。

git commit-tree -p feature -m "commit msg" 42bb^{tree}

这将创建161a的提交,树的内容为42bb。 您需要更新功能分支以指向返回的SHA git update-ref