我知道这个问题已经在这里被问到了,但是我想解决一些奇怪的问题,我想在你的帮助下解决。
所以我有一个名为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
。
这怎么可能?我做错了什么?
答案 0 :(得分:2)
git中的分支只是提交的指针。没有留下如何创建给定分支的痕迹(好吧,有时可能在本地reflog中,但它不可靠并且从未被推送过)。所以从git的角度来看feature-new-feature
和feature-kernel
是两个相同的分支,唯一的区别是名称。
Bitbucket可视化显示了(提交)历史记录中的当前关系,但是它必须以同样的方式显示feature-new-feature
和feature-kernel
,因为源于它们后面的分支 - 在那里case,master
。
我还认为分支视图中显示为父分支的分支始终是主分支(master
)或您创建拉取请求的分支,而不仅仅是“最接近的分支”。要查看分支之间的真实关系,请使用提交视图(在Bitbucket中)或gitk
或等效。
答案 1 :(得分:1)
如果您从feature-new-feature
分支后没有对新分支feature-kernel
进行任何更改,即分支feature-kernel
和分支feature-new-feature
相同,git会看到这些两个分支作为同一个分支,它们将共享相同的父分支。如果feature-kernel
从master
分支分支,您会看到feature-new-feature
从master
分支分支。