Git从某些提交中重新设置基础

Git从某些提交中重新设置基础,git,Git,对于初学者来说,理解Git rebase确实很困难。当我重新设置基址时,我总是得到奇怪的结果。我发现我可以使用--on来控制我应该重新设置基准的位置,但是如何从方面控制 例如: 假设我现在在branch 2,数字表示提交完成的时间,红色表示尚未在master中的branch-2提交。如果我想让我的分支2位于下方,我应该使用什么命令 1) 1->2->8->3->5->6->7 2) 1->2->8->5->6->7 一开始,我认为这是不可能的,因为我的commit 3将不复存在,但我从Git网

对于初学者来说,理解Git rebase确实很困难。当我重新设置基址时,我总是得到奇怪的结果。我发现我可以使用
--on
来控制我应该重新设置基准的位置,但是如何从
方面控制

例如:

假设我现在在branch 2,数字表示提交完成的时间,红色表示尚未在master中的branch-2提交。如果我想让我的分支2位于下方,我应该使用什么命令

1) 1->2->8->3->5->6->7

2) 1->2->8->5->6->7

一开始,我认为这是不可能的,因为我的commit 3将不复存在,但我从Git网站上读到它,这实际上是有效的

3) 1->2->3->5->6->8->7

我能做这个吗?基本上是在主服务器上只重设提交7的基础

问这些问题的原因是,auto
rebase
总是让我头疼,因此我宁愿能够指定,我想将
哪个提交
重新设置为
哪个提交。我能做到吗?但是我无法从
参数中找到

第一种情况:

git checkout branch2
git rebase máster
第二种情况:

git rebase --onto master branch2~3 branch2 #rebase branch2 but skipping revision 3
第三种情况:

git checkout branch2~
git cherry-pick master #pick revision 8
git cherry-pick branch2 # pick revision 7
# if you like the result
git branch -f branch2
git checkout branch2

建议将分支标签放在正确的位置。一个分支指向一个提交。@evolutionxbox嗨,我不太明白,你能进一步解释一下吗?如果你看git文档中的图表,你可以看到分支名称指向提交<代码>主机
例如指向
C6