我的团队将dev和master的用法作为几个repos的默认分支交替使用,我想编写一个脚本来检查默认分支,当进入一个目录时。git - 如何获取默认分支?
当这些回购中的某些回收请求被打开时,它们默认为'dev'或'master'作为合并目标。
我明白如何设置此信息,但无法恢复: https://help.github.com/articles/setting-the-default-branch/
是否有可用的一个git命令确定远程存储库默认分支?
我的团队将dev和master的用法作为几个repos的默认分支交替使用,我想编写一个脚本来检查默认分支,当进入一个目录时。git - 如何获取默认分支?
当这些回购中的某些回收请求被打开时,它们默认为'dev'或'master'作为合并目标。
我明白如何设置此信息,但无法恢复: https://help.github.com/articles/setting-the-default-branch/
是否有可用的一个git命令确定远程存储库默认分支?
是否有git命令可用来确定远程存储库的默认分支?
没有,似乎没有为:
git ls-remote -v https://github.com/<user>/<repo>
将列出所有的分支,而不是HEAD(这是指定默认分支的symref)
同样, GitHub Reference API可以列出标题,但不包括HEAD。
这对我的作品使用Git 2.1.10,使用从GitHub克隆资源库:
git branch -r --points-at refs/remotes/origin/HEAD
这种方法的主要问题是,它列出每远程分支指向头;然而,输出包括提示:
origin/HEAD -> origin/master
origin/master
origin/test123
所以,你可以后期处理与grep
或类似的输出,以找到一个带箭头:
git branch -r --points-at refs/remotes/origin/HEAD | grep '\->' | cut -d' ' -f5 | cut -d/ -f2
似乎有点像一种变通方法解决方案但是这似乎工作:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
在从GitHub克隆回购测试与git的2.9.4(但在其他版本可能工作):
$ git symbolic-ref refs/remotes/origin/HEAD | sed '[email protected]^refs/remotes/origin/@@'
master
默认分支是github的东西,而不是git的东西。 – 2015-02-23 03:10:44
您可以使用GitHub API,如下面的问题所示:http://stackoverflow.com/questions/16500461/how-do-i-find-the-default-branch-for-a-repository-using-the-github -v3-api – 2015-02-23 03:15:04