如何判断github引用是提交哈希,分支名称还是标记?

时间:2015-10-13 18:30:15

标签: git github

Git引用,例如在NPM包中的git:// uris或github中的/tarball路由中使用的那些可以(至少)有三种形式:分支名称,提交哈希值或标记名称。 GitHub api中是否有一条路由可以确定,给定一个任意引用,它是哪种类型?我能想到的唯一方法是尝试使用引用命中/tags/branches/commits路由,等待其中一个返回成功结果。当然,这不是很有效。有没有更好的办法?

更好的是,在给定这些类型的引用之一的情况下,它会将其转换为提交哈希(因此,如果给定提交哈希,它将返回哈希;给定分支,它将返回分支上的最新提交,并给定一个标记,它将返回标记指向的提交哈希值。

1 个答案:

答案 0 :(得分:0)

你不需要。如果您有提交哈希,则可以使用/tree端点:

https://github.com/owner/repo/tree/commit-hash

如果您有输入字符串,则可以按照提及的方式检查不同的端点。

目前GitHub没有这样的功能,可能没有,因为你可能有一个分支和一个同名的标签(那么它会在类型之间出现混淆)。