反转 git 个分支之间的关系

Reverse a relationship between git branches

假设您有一个名为 branch A 的 git 分支,并且您创建了一个从名为 branch B[=31= 的分支 a 派生的新分支].

是否可以通过一系列命令(rebase?)让分支A从分支B派生出来?如果是这样,这将如何影响已经从分支 A 派生的其他分支?分支的提交历史将如何受到影响?

给出问题背景:

我有一个暂存分支 (B) 和一个派生任务分支的分支 (A)。我看到,每次我将请求 A 拉入 B 时,当我在 GitHub 上将 B 与 A 进行比较时,我刚刚将请求拉入 B 的更改显示为差异。为了解决这个问题,我一直不得不在本地将 A 合并到 B(这不会更改任何文件)以使两者的比较显示没有差异。我想扭转他们的关系来解决这个问题。

请随意以简单地解决我在此处列出的问题的方式回答这个问题。

视觉:

我有:

   *(Feature Branches)
  /
 /
A (Developing Branch)
 \
  \
   B (Staging Branch)

我要:

B (Staging Branch)
 \
  \
   A (Developing Branch)
    \
     \
      * (Feature Branches)

为了实现你想要的,你不应该从你的开发分支中拉取请求到暂存中。相反,staging 分支应该跟在 develop 之后,你应该通过 rebase 来更新 staging 分支。

之前

o < develop
|
o < staging
|
o < v0.2
|
o < v0.1

之后

o < develop  < staging
|
o 
|
o < v0.2
|
o < v0.1

您可以通过调用

在本地执行此操作
git checkout staging
git rebase develop
git push origin staging