Git 重新设置从另一个分支创建的分支的基础

Git 重新设置从另一个分支创建的分支的基础,git,Git,我目前拥有的存储库在分支和提交方面与下图类似 o -- o (development) \ o -- o -- o (topicA) \ o -- o -- o (topicB) 但是,我想将topicB重新设置到同一个commit topicA的基础上,而不带来topicB从topicA继承的更改,因此它

我目前拥有的存储库在分支和提交方面与下图类似

o -- o                            (development)
      \
       o -- o -- o                (topicA)
                  \
                   o -- o -- o    (topicB)
但是,我想将topicB重新设置到同一个commit topicA的基础上,而不带来topicB从topicA继承的更改,因此它看起来如下所示:

o -- o                            (development)
     |\
     | o -- o -- o                (topicA)
      \           
       o -- o -- o                (topicB)
我该怎么做呢?我试过命令:

git rebase --onto development topicA topicB
git rebase --onto development topicA topicB
但这似乎只是将分支重置为所需的提交,而没有带来topicB的更改


任何帮助都将不胜感激

愚蠢的错误,我没有在正确的分支上签出。此外,在我尝试键入命令时,我在命令中交换topicA和topicB时出现了几次错误:

git rebase --onto development topicA topicB
git rebase --onto development topicA topicB
所以看起来像

git rebase --onto development topicB topicA

请您显示分支指向哪个提交?这应该由rebase来完成。你能给我们看一下在rebase前后git log--graph--decoration--oneline--all的相关部分吗?当你发出rebase命令时,你需要在topicB上。@matt Yep,我以为我在正确的分支上,但事实上我不是。这个修好了,耶!我知道,语法很混乱。请注意:
git-rebase--on
(您正在使用的表单)以
git-checkout
开头。完成后,您也将保持在
上。剩下的部分就是git rebase--On。我尽量避免使用您正在使用的命令(使用额外的
部分),因为在这里交换两个分支名称太容易了。上游的那个已经够糟糕的了@torek是的,这是一些很好的建议,我倾向于使用Gitkraken处理大部分Git内容,所以我对命令行Git的了解不是很好。这可能就是我一开始犯这个错误的原因。但我希望将来有人能从我的错误中吸取教训!“那不太对,”托瑞克说。如果您指定了所有3个点,git将在重新设置基础之前进行签出。也许以前是对的?但现在不行(试试看)。@eftshift 0:我是这么说的:它对
参数进行初始
git签出。