给定一个SSH URL,例如git@github.com:<user>/<project>.git
,如何测试github上是否存在特定的存储库(假设我也设置了正确的SSH密钥)?
使用git clone
是不可取的,因为如果它确实存在,它会立即继续下载它。我没有看到任何可以传递给git clone
的标志,只会在不下载的情况下检查存储库的存在。
我想我可以通过运行如下命令来解析URL并使用公共API:
curl "https://api.github.com/repos/<user>/<project>"
但这会产生很多无关的信息,而不是简单的是/否。
是否有更好的解决方案来简单检查存储库是否存在?
答案 0 :(得分:6)
您只需使用git ls-remote
:
git ls-remote git@github.com:username/reponame
(也适用于https网址,不需要设置任何ssh密钥)
如果存在repo,那将列出HEAD和远程分支,而无需克隆或下载任何其他内容。
另一种方法是简单地测试回购的https url是否存在(或者是404) 例如,参见&#34; Can I use wget to check , but not download&#34;:
wget -q --spider address https://github.com/username/reponame
也可以使用curl
:&#34; script to get the HTTP status code of a list of urls?&#34;。