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

时间:2018-12-18 07:49:37

标签: git rebase

对于我们的项目之一,我们必须使用外部公司代码库。他们偶尔会更新其母版,然后将其集成到我们的存储库中。但是,由于他们做了一些奇怪的/不必要的事情,所以我们需要进行几次提交,每次他们将其母版更新到我们的母版之前,都需要应用它们。这些提交是发布分支的一部分(我们将其称为release/old。要获取最新更改并应用这些提交,我要做的就是从其主行创建一个新分支(例如,release/new)然后将提交从发行版/旧版本重新调整为发行版/新版本。

我首先在新分支中尝试了git rebase release/old,但是显然它不起作用,因为它从release/new那里获取了提交并将它们应用于release/old。当我从rebase -i release/new尝试git release/old branch时(因此将提交从旧的提交并应用于新的提交),它经历了所有提交,但是当我返回新分支并尝试将其推送时,它说什么也不能推送,在git log中只显示了来自master的提交。

我所知道的是,它以前是使用git rebase完成的,但是我不知道什么是正确的命令。

1 个答案:

答案 0 :(得分:0)

假设这是您的情况:

a -- b -- c                 <-- their/master
     \ 
      \
       f -- g               <-- release/old
  1. git checkout release/old
  2. 通过git checkout -b release/new创建此分支的副本
  3. 通过release/newtheir/master分支更新为最新的git rebase their/master,结果是:
a -- b -- c                 <-- their/master
      \    \ 
       \    \
        \    f' -- g'        <-- release/new
         \
          f -- g             <-- release/old

您的release/new现在以their/master为基础,此外,它还具有此基础之上release/old中包含的“一对提交”的副本。