gpt4 book ai didi

git - 仅对分支的一部分进行 rebase

转载 作者:IT王子 更新时间:2023-10-29 00:52:54 26 4
gpt4 key购买 nike

我有两个分支(和主分支)。 Branch 2 基于 Branch 1 基于 master。我提交了 Branch 1 以供审查,它有一些变化,我将其中一些变化重新定位到历史记录中,并将结果 merge 到 master 中。

现在我需要在 master 之上对分支 2 进行 rebase ,以准备审查/merge 。

问题是分支 2 仍然包含分支 1 的原始提交,它们不再存在,所以 git 变得困惑。我尝试使用 rebase -i 删除分支 1 的原始提交,但分支 2 的提交并不基于 master-before-branch-1。

我需要做的是采用分支 2,删除一些提交,并在单个操作中仅将剩余的提交 rebase 到 master 之上。但我只知道如何分两个不同的步骤来完成这两个操作。

我怎样才能将我的分支的一部分 rebase 到另一个分支,删除所有不在共同祖先中的提交,除了我指定的提交(例如从 HEAD~2 向上)?

这是当前状态:

master                     new branch 1
- - - - - - - - - - - | - - - - - - - - -
\
\ branch 1
\ _ _ _ _ _ _ _
\
\ branch 2
\ _ _ _ _ _ _ _

我想要的结果是:

master            new branch 1    
- - - - - - - | - - - - - - - - - -
\
\
\
\ branch 2
- - - - - - - - -

最佳答案

实际的命令是:

git rebase --onto newbranch1 branch1 branch2

这将在 new_branch1 之上重播 branch1branch2 HEAD 的所有提交。

作为Joshua Goldberg把它 in the comments :

 git rebase --onto <place-to-put-it> <last-change-that-should-NOT-move> <change to move>

作为Denis Sivtsovthe comments 中说明:

If you need only replay the last commit only from branch, in this case work:

git rebase --onto newbranch1 HEAD~1

关于git - 仅对分支的一部分进行 rebase ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com