Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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
如何在Github中将开发分支设置为默认分支而不是主分支?_Git_Github - Fatal编程技术网

如何在Github中将开发分支设置为默认分支而不是主分支?

如何在Github中将开发分支设置为默认分支而不是主分支?,git,github,Git,Github,我知道这可以在存储库的管理页面上完成。可以在那里设置另一个默认分支。这就是这个问题的答案 但是我发现(可能是一个bug?)以下内容。如果您的主分支和开发分支完全相同,那么git克隆将不会克隆默认的“开发”分支,而仍然是“主分支”!!如果您将某些内容提交到开发分支,请删除克隆,然后再次克隆,您将获得开发分支 这是Git行为还是Github?这是否可以修复,以使其始终处于开发状态?这是git的“功能” 我刚刚用本地回购进行了测试,而我的第一次回购测试的头是“develope”: 。。。在test1中

我知道这可以在存储库的管理页面上完成。可以在那里设置另一个默认分支。这就是这个问题的答案

但是我发现(可能是一个bug?)以下内容。如果您的主分支和开发分支完全相同,那么git克隆将不会克隆默认的“开发”分支,而仍然是“主分支”!!如果您将某些内容提交到开发分支,请删除克隆,然后再次克隆,您将获得开发分支

这是Git行为还是Github?这是否可以修复,以使其始终处于开发状态?

这是git的“功能” 我刚刚用本地回购进行了测试,而我的第一次回购
测试
头是“
develope
”:

。。。在
test1
中克隆的默认分支的名称是
master

C:\Users\VonC\Documents\GitHub\test1>git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
请参阅“”:
从克隆回购协议的角度来看,远程原始回购协议上的
HEAD
引用了
master
develope

C:\Users\VonC\Documents\GitHub\test>git symbolic-ref HEAD
refs/heads/develop
C:\Users\VonC\Documents\GitHub\test1>git ls-remote origin
c215dd28ea8bf9b0c6b522c784b70bbbb3e858a5        HEAD
c215dd28ea8bf9b0c6b522c784b70bbbb3e858a5        refs/heads/develop
c215dd28ea8bf9b0c6b522c784b70bbbb3e858a5        refs/heads/master
确定克隆回购的默认分支的顺序为:

  • HEAD
    引用了
    refs/heads/master
    ,并且已经存在 ->您将获得一个名为
    master
    的本地分支,从
    origin/master
  • HEAD
    引用了
    refs/heads/anotherBranch
    并且存在 ->您得到一个名为anotherBranch的本地分支,从
    origin/anotherBranch

奇怪-我也能复制这个。我会把它作为一个bug报告给GitHub…@MarkLongair并不奇怪:git应该是这样工作的。请看下面我的答案。@VonC:好的,那么这是一个git bug,或者至少是一个错误特性。HEAD是一个符号ref,但出于某种原因,它在克隆时抛弃了这种间接性,而只是查找指向对象名的分支?这对我来说没有任何意义,并且产生了一些惊喜,比如发问者发现的情况。@MarkLongair
HEAD
这里似乎指的是提交,而不是分支。如果该提交恰好被
master
引用,则
master
被视为默认分支。如果这是真的,那么它不是一个bug,它是一个“特性”,或者在本例中是一个约定。所有新的拉取请求现在都是针对开发分支而不是主分支的。@EivindGussiåsLøkseth,正如您在参考答案的评论中提到的,这不是只对您的本地回购有效吗?GitHub端的repo不会意识到一个
git-remote-set-head
指令。也许你是对的。由于某种原因,我在运行此命令后创建的第一个PR自动定向开发,但现在又有一个新的PR定向主控。不知道为什么它一开始似乎能工作。@EivindGussiåsLøkseth git clone/fetch/pull/push和ls remote是唯一与远程repo通信的命令。其他一切都是您回购协议的本地内容。