是否有一个稳定的url总是在github中获得默认分支?
Is there a stable url to always get the default branch in github?
过去,在大多数情况下,您只需添加 blob/master/ to a github url get the raw file, i.e.
https://github.com/jacoco/jbang-catalog/blob/master/jbang-catalog.json`
现在旧仓库使用 master
但新仓库使用 main
这个技巧对新仓库不起作用。
有没有办法避免必须调用其余 api 来查找默认分支 main ?
像 blob/@default/
或类似的魔法标记?
总是需要对默认分支名称进行实际查找,因为人们总是能够选择与默认 Git 或 GitHub 提供的默认分支不同的默认分支。只是过去很少使用 master
以外的名称,但许多项目长期以来一直使用不同的名称。
如果您不想使用 REST API,则可以使用 Git:
进行查找
$ git ls-remote --symref origin | head -n1
ref: refs/heads/dev HEAD
在这种情况下,默认分支是 dev
。
如果您只想获取GitHub 用户界面中默认分支上的对象,那么您可以使用HEAD
:https://github.com/git/git/blob/HEAD/README.md。请注意,这在本地存储库中不起作用,因为 HEAD
指的是您在本地签出的分支。
否则,如果你真的想知道分支的名称,那么你将需要查询API。这在 default_branch
下的 REST API 中公开,也应该可以通过 GraphQL API.
获得
解决方法是使用 HEAD。该符号名称将为您提供默认分支的提示,无论它的名称是什么。
过去,在大多数情况下,您只需添加 blob/master/ to a github url get the raw file, i.e.
https://github.com/jacoco/jbang-catalog/blob/master/jbang-catalog.json`
现在旧仓库使用 master
但新仓库使用 main
这个技巧对新仓库不起作用。
有没有办法避免必须调用其余 api 来查找默认分支 main ?
像 blob/@default/
或类似的魔法标记?
总是需要对默认分支名称进行实际查找,因为人们总是能够选择与默认 Git 或 GitHub 提供的默认分支不同的默认分支。只是过去很少使用 master
以外的名称,但许多项目长期以来一直使用不同的名称。
如果您不想使用 REST API,则可以使用 Git:
进行查找$ git ls-remote --symref origin | head -n1
ref: refs/heads/dev HEAD
在这种情况下,默认分支是 dev
。
如果您只想获取GitHub 用户界面中默认分支上的对象,那么您可以使用HEAD
:https://github.com/git/git/blob/HEAD/README.md。请注意,这在本地存储库中不起作用,因为 HEAD
指的是您在本地签出的分支。
否则,如果你真的想知道分支的名称,那么你将需要查询API。这在 default_branch
下的 REST API 中公开,也应该可以通过 GraphQL API.
解决方法是使用 HEAD。该符号名称将为您提供默认分支的提示,无论它的名称是什么。