我可以使用SSH URL检查git repo的存在吗?

时间:2014-12-27 14:15:52

标签: git github command-line ssh

给定一个SSH URL,例如git@github.com:<user>/<project>.git,如何测试github上是否存在特定的存储库(假设我也设置了正确的SSH密钥)?

使用git clone是不可取的,因为如果它确实存在,它会立即继续下载它。我没有看到任何可以传递给git clone的标志,只会在不下载的情况下检查存储库的存在。

我想我可以通过运行如下命令来解析URL并使用公共API:

curl "https://api.github.com/repos/<user>/<project>"

但这会产生很多无关的信息,而不是简单的是/否。

是否有更好的解决方案来简单检查存储库是否存在?

1 个答案:

答案 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;。