在git中分支来自另一个分支的分支

时间:2018-05-08 07:41:11

标签: git

我知道这个问题已经在这里被问到了,但是我想解决一些奇怪的问题,我想在你的帮助下解决。

所以我有一个名为feature-kernel的分支,我想从中分叉,我想创建feature-new-feature。所以这就是我在第三个分支上所做的事情:

  • git checkout -b feature-new-feature feature-kernel
  • git push --set-upstream origin feature-new-feature

然后我检查了我的bitbucket,在分支中显示feature-new-feature分支的父分支是master

这怎么可能?我做错了什么?

2 个答案:

答案 0 :(得分:2)

git中的分支只是提交的指针。没有留下如何创建给定分支的痕迹(好吧,有时可能在本地reflog中,但它不可靠并且从未被推送过)。所以从git的角度来看feature-new-featurefeature-kernel是两个相同的分支,唯一的区别是名称。

Bitbucket可视化显示了(提交)历史记录中的当前关系,但是它必须以同样的方式显示feature-new-featurefeature-kernel,因为源于它们后面的分支 - 在那里case,master

我还认为分支视图中显示为父分支的分支始终是主分支(master)或您创建拉取请求的分支,而不仅仅是“最接近的分支”。要查看分支之间的真实关系,请使用提交视图(在Bitbucket中)或gitk或等效。

答案 1 :(得分:1)

如果您从feature-new-feature分支后没有对新分支feature-kernel进行任何更改,即分支feature-kernel和分支feature-new-feature相同,git会看到这些两个分支作为同一个分支,它们将共享相同的父分支。如果feature-kernelmaster分支分支,您会看到feature-new-featuremaster分支分支。