对于我们的项目之一,我们必须使用外部公司代码库。他们偶尔会更新其母版,然后将其集成到我们的存储库中。但是,由于他们做了一些奇怪的/不必要的事情,所以我们需要进行几次提交,每次他们将其母版更新到我们的母版之前,都需要应用它们。这些提交是发布分支的一部分(我们将其称为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
完成的,但是我不知道什么是正确的命令。
答案 0 :(得分:0)
假设这是您的情况:
a -- b -- c <-- their/master
\
\
f -- g <-- release/old
git checkout release/old
git checkout -b release/new
创建此分支的副本release/new
将their/master
分支更新为最新的git rebase their/master
,结果是:a -- b -- c <-- their/master
\ \
\ \
\ f' -- g' <-- release/new
\
f -- g <-- release/old
您的release/new
现在以their/master
为基础,此外,它还具有此基础之上release/old
中包含的“一对提交”的副本。