对于我们的一个项目,我们必须使用外部公司代码库。每隔一段时间,他们就会更新他们的master,然后我们必须将其集成到我们的回购中。然而,因为他们做了一些奇怪/不必要的事情,我们有几个提交,每次他们更新他们的主控时,我们都需要应用它们,然后再将其合并到我们的主控中。这些提交是发布分支的一部分(我们称之为release/old
。要获得最新的更改并应用这些提交,我必须从它们的主分支(例如release/new
(创建一个新分支,然后将提交从release/old重新设置为release/new。
我首先从新分支尝试了git rebase release/old
,但这显然不起作用,因为它从release/new
获取了提交并将其应用于release/old
。当我从release/old branch
尝试gitrebase -i release/new
时(所以从旧分支中获取提交并将其应用于新分支(,它完成了所有提交,但当我回到新分支并尝试推送它时,它说什么都不能推送,在git log
中,只显示来自master的提交。
我只知道以前使用过git rebase
,但我不知道什么是正确的命令
假设这是您的情况:
a -- b -- c <-- their/master
f -- g <-- release/old
git checkout release/old
- 通过
git checkout -b release/new
创建此分支的副本 - 通过CCD_ 14将CCD_ 12分支更新为最新的CCD_
a -- b -- c <-- their/master
f' -- g' <-- release/new
f -- g <-- release/old
您的release/new
现在有their/master
作为基础,此外,它在这个基础之上有release/old
中包含的"几次提交"的副本。