Git错过了扩展分支开发的rebase?

Git错过了扩展分支开发的rebase?,git,version-control,merge,rebase,Git,Version Control,Merge,Rebase,几个月前,我在一个我正在从事的项目中从MasterDevelopment分支出来。我一直在做我自己的实验分支,但不断地从master那里吸收变化以跟上时代的发展。每次我这样做时,我都使用这个命令集 git checkout master git pull git checkout experiment git merge master 今天我去把我的实验分支合并回master。我只是确定我和师父都是最新的,然后打电话给他 git checkout master git merge experi

几个月前,我在一个我正在从事的项目中从MasterDevelopment分支出来。我一直在做我自己的实验分支,但不断地从master那里吸收变化以跟上时代的发展。每次我这样做时,我都使用这个命令集

git checkout master
git pull
git checkout experiment
git merge master
今天我去把我的实验分支合并回master。我只是确定我和师父都是最新的,然后打电话给他

git checkout master
git merge experiment
当我在GitX中查看master分支时,它显示了一条单独的开发线,每次我都从master中提取它来保持自己的最新状态。这是不是因为我在调出更改时应该重新设置master的基调

有人有解决这个问题的好办法吗?我想我可以把这个实验重新安排到大师身上?但实验是一个相当重要的分支,我想把它作为历史上一个明显独立的分支。我有没有办法回到过去,重新确定旧的有问题合并的基础? 正如你可能知道的那样,我对git很陌生

谢谢

没错

当您执行合并时,实际上有一个提交有两个父级,发生的情况如下:

原始历史:

A <- B <- C
A完全正确

当您执行合并时,实际上有一个提交有两个父级,发生的情况如下:

原始历史:

A <- B <- C

A好的,那么我如何解决这个问题呢?我可以回去重新设置旧的错误合并的基础吗?如果你确定所有合并还没有发布到公众,你可以这样做。我不确定Git如何处理带有“中间合并”的情况下的重基,但为什么不试试呢?您始终可以切换回重新基准之前的位置:)对于更糟糕的情况,您只需要为重新基准选择每个非合并修订。无论如何,你必须确保你所有的改变都是本地的。一旦发布,重定基址会毁掉一切。好吧,那我该怎么解决这个问题呢?我可以回去重新设置旧的错误合并的基础吗?如果你确定所有合并还没有发布到公众,你可以这样做。我不确定Git如何处理带有“中间合并”的情况下的重基,但为什么不试试呢?您始终可以切换回重新基准之前的位置:)对于更糟糕的情况,您只需要为重新基准选择每个非合并修订。无论如何,你必须确保你所有的改变都是本地的。一旦发布,重新定基将毁掉一切。
A <- B <- C <- D <- E
           ^
            \- X <- Y
A <- B <- C <- D <- E <- M
           ^             /
            \- X <- Y <-/
A <- B <- C <- D <- E
           ^
            \- X <- Y
A <- B <- C <- D <- E <- X' <- Y'