Git-使用rebase将提交从一个分支应用到另一个分支



对于我们的一个项目,我们必须使用外部公司代码库。每隔一段时间,他们就会更新他们的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
  1. git checkout release/old
  2. 通过git checkout -b release/new创建此分支的副本
  3. 通过CCD_ 14将CCD_ 12分支更新为最新的CCD_
a -- b -- c                 <-- their/master
     
    
    f' -- g'        <-- release/new

f -- g             <-- release/old

您的release/new现在有their/master作为基础,此外,它在这个基础之上有release/old中包含的"几次提交"的副本。