我正在为git遇到的特殊情况而努力。
简而言之,我试图为从另一个从feature/tracking-refactor
签出的分支(feature/basic-tracking
)中签出的分支(origin/master
)重新定基。
合并feature/basic-training
后,我想将feature/tracking-refactor
改成母版,而不将feature/basic-training
提交拖到新的origin/master
上。
下面是我的情况的图形表示。假设我有一个git log图,如下所示。
而且,在成功将feature/basic-tracking
合并到主服务器上的拉取请求之后,我目前处于这种情况。
但是,当我尝试将feature/tracking-refactor
迁移到master上以具有类似干净的日志历史记录时,实际上我也在将所有提交也从feature/basic-tracking
中拖动出来。我只想重新整理feature/tracking-refactor
提交,例如仅使用(d0875g和ee68b9t)SHA的提交。
为此,我的工作是从origin/master
创建一个新分支,并从feature/tracking-refactor
分支中挑选每个提交。但是我希望有一个更优雅的选择。谢谢!
答案 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
希望它能起作用。