将一个分支从另一个分支签出到master上,而不用拖拽第一个分支的提交

时间:2018-10-15 20:53:26

标签: git rebase

我正在为git遇到的特殊情况而努力。

简而言之,我试图为从另一个从feature/tracking-refactor签出的分支(feature/basic-tracking)中签出的分支(origin/master)重新定基。

合并feature/basic-training后,我想将feature/tracking-refactor改成母版,而不将feature/basic-training提交拖到新的origin/master上。

下面是我的情况的图形表示。假设我有一个git log图,如下所示。

Previous git log

而且,在成功将feature/basic-tracking合并到主服务器上的拉取请求之后,我目前处于这种情况。

Current git log

但是,当我尝试将feature/tracking-refactor迁移到master上以具有类似干净的日志历史记录时,实际上我也在将所有提交也从feature/basic-tracking中拖动出来。我只想重新整理feature/tracking-refactor提交,例如仅使用(d0875g和ee68b9t)SHA的提交。

为此,我的工作是从origin/master创建一个新分支,并从feature/tracking-refactor分支中挑选每个提交。但是我希望有一个更优雅的选择。谢谢!

1 个答案:

答案 0 :(得分:0)

git rebase --onto。这样可能很难:git rebase --onto target-branch discard-branch branch-to-rebase。因此, discard-branch 将告诉rebase不会在rebase操作上执行 的修订。在您的情况下,应该是(如果我正确理解的话):

git rebase --onto origin/master feature/basic-training feature/tracking-refactor

实际上,如果功能/基本训练已经合并到原始/母版中,则可以执行以下操作:

git checkout feature/tracking-refactor
git rebase origin/master

git rebase --onto origin/master origin/master feature/tracking-refactor

希望它能起作用。