几个月前,我在一个正在研究的项目中分支了主开发分支。我一直在自己的实验分支工作,但不断从主人那里获取变化以保持最新状态。每次我这样做,我都使用了这个命令集
git checkout master
git pull
git checkout experiment
git merge master
今天我把我的实验分支合并成了主人。我只是确保我与主人约会,并打电话给
git checkout master
git merge experiment
当我在主分支机构中查看GitX时,它显示了一个独立的开发线,我每次都从主人那里看起来像是为了让自己保持最新状态。这是因为当我撤消更改时,我应该一直在改变主人吗?
有没有人有一个像样的解决方案来解决这个问题?我想我可以将实验改为主人吗?但是实验是相当分支的,我想把它作为历史上一个明显的独立分支。有没有办法让我回去重新定义旧的有问题的合并? 你可能会说,我对git很新。
谢谢!
答案 0 :(得分:1)
完全。
当你执行合并时,你实际上有一个提交有2个父母,发生的事情是这样的:
原始历史:
A <- B <- C
你改变了什么(X和Y)
A <- B <- C <- X <- Y
你从被跟踪的存储库中取出(假设有人添加了D和E)
A <- B <- C <- D <- E
^
\- X <- Y
然后你合并了:
A <- B <- C <- D <- E <- M
^ /
\- X <- Y <-/
这就是为什么你会看到那些“单独的行”
如果是rebase,它是这样的:
你从被跟踪的存储库中取出(假设有人添加了D和E)
A <- B <- C <- D <- E
^
\- X <- Y
你变基(这意味着GIT再次应用你的变化X,Y)
A <- B <- C <- D <- E <- X' <- Y'
(修订版X和Y被放弃)
我相信你喜欢看