Git将子分支还原为主分支

问题描述 投票:0回答:2

我在Git储存库中有以下情况

A-B [来源/主数据]\C [来源/ X]\E-F [来源/是]

[当我启动Y时,我没有意识到我已经从X分支了,我打算从master分支。

如何将Y设置为包含提交C的主控without

([X上的更改是未由Y上的提交触及的文件]

我想结束以下内容:

A-B [来源/主数据]\\ E-F [来源/是]\C [来源/ X]

我尝试过git rebase master,但似乎没有任何改变,输出为:

Current branch Y is up to date.
git rebase
2个回答
2
投票

可以很容易地做到这一点:

git rebase --onto origin/master origin/X origin/Y

鉴于您正在使用远程引用,因此您将处于分离的HEAD上,因此必须执行此操作以将结果分支推入原始节点的分支Y:

git push origin -f HEAD:Y

0
投票

与Git一样,可能有很多方法可以实现这一目标,但是以下方法应该起作用:

  1. 在分支Y上将其重置为mastergit reset --hard master
  2. 以樱桃方式在git cherry-pick C..F中选择提交内容(假设EF是分支中C之后的第一个和最新的提交ID)。

编辑:正如@ eftshift0所指出的,我最初在git cherry-pick语句中输入了错误的提交ID-现在已修复。

© www.soinside.com 2019 - 2024. All rights reserved.