Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从git中的另一个分支分叉一个分支_Git - Fatal编程技术网

从git中的另一个分支分叉一个分支

从git中的另一个分支分叉一个分支,git,Git,我知道这里已经有人问过这个问题,但我只是有一些奇怪的问题,我想在你的帮助下解决 因此,我有一个名为featurekernel的分支,我想从中派生出来,我想创建featurenewfeature。下面是我在第三个分支上做的事情: git签出-b功能新功能内核 git推送——设置上游原点功能新功能 然后我检查了我的bitbucket,在分支中它显示功能新功能分支的父分支是主分支 这怎么可能?我做错了什么?如果您在从功能内核分支后没有对新分支功能新功能进行任何更改,即分支功能内核和分支功能新功能相

我知道这里已经有人问过这个问题,但我只是有一些奇怪的问题,我想在你的帮助下解决

因此,我有一个名为
featurekernel
的分支,我想从中派生出来,我想创建
featurenewfeature
。下面是我在第三个分支上做的事情:

  • git签出-b功能新功能内核
  • git推送——设置上游原点功能新功能
然后我检查了我的bitbucket,在分支中它显示
功能新功能
分支的父分支是
主分支


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

如果您在从
功能内核
分支后没有对新分支
功能新功能
进行任何更改,即分支
功能内核
和分支
功能新功能
相同,git会将这两个分支视为同一个分支,它们将共享同一父分支。如果
featurekernel
是从
master
分支分支出来的,您将看到
featurenewfeature
也是从
master
分支出来的。

git中的分支只是指向提交的指针。对于给定的分支是如何创建的,没有留下任何痕迹(好吧,有时可能是在本地reflog中,但它不可靠,而且从不推送)。因此,从git的角度来看,
featurenewfeature
featurekernel
是两个相同的分支,唯一的区别是名称

Bitbucket可视化显示(提交)历史中的当前关系,但它必须以相同的方式显示
功能新功能
功能内核
,就像源自它们后面某个分支一样-在这种情况下,
主功能


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

首先,
git分支
没有选项
-b
。也许你的意思是
git checkout-b功能新功能内核
?第二,Git没有父分支的概念,尽管我理解你的意思。如果
feature kernel
master
在创建
feature new feature
时恰好指向相同的提交,那么我们可以说
feature kernel
master
都是“父分支”。@ElpieKay哦,我的天哪,是的,我是说,
git checkout-b
给我一点时间,让我意识到还有一件事需要检查。您的本地“功能内核”是最新的吗?如果这个分支上有本地没有的额外提交,那么你的新分支将基于旧的提交。@ElpieKay不,它们在创建新分支时没有指向同一个提交,据我所知,必须有唯一的父级是“功能内核”,对吗?但当我转到bitbucket,然后转到Branchs并查看该方案时,我可以清楚地看到我新创建的分支来自主分支。或者我只是误解了这个方案?请记住,forking有一个非常具体的含义,它不是指git概念,而是指github概念。