git - 我可以使用 SSH URL 检查 git 存储库是否存在吗?

标签 git github command-line ssh

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

使用 git clone是不可取的,因为如果它确实存在,它将立即继续下载它。我没有看到任何可以传递给 git clone 的标志,这将简单地检查存储库是否存在而无需下载。

我想我可以解析 URL 并改为使用公共(public) API,方法是运行如下命令:

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

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

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

最佳答案

您可以简单地使用 git ls-remote :

 git ls-remote git@github.com:username/reponame

(也适用于 https url,不需要设置任何 ssh key )

如果存储库存在,它将列出 HEAD 和远程分支,而无需克隆或下载任何其他内容。

另一种方法是简单地测试 repo 的 https url 是否存在(或者是 404)。
参见例如“Can I use wget to check , but not download”:

wget -q --spider address https://github.com/username/reponame

也可以使用 curl:“script to get the HTTP status code of a list of urls? ”。

关于git - 我可以使用 SSH URL 检查 git 存储库是否存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668072/

相关文章:

git - 仅在本地分支或本地和远程分支上为新功能创建分支?

shell - 如何使用.sig文件验证下载的文件?

android - 尝试使用 adb 递归地将 Android 文件拉入 Windows PC 时出现特殊文件名问题

linux - 如何在Win10上安装jot命令

git - 如何让 Git 忘记已跟踪但现在位于 .gitignore 中的文件?

git - 有没有 "more"命令可以在windows的Git shell中使用?

Git 克隆错误 : RPC failed - curl 28 Operation too slow

github - github 中的文件夹与存储库

git - 在 gitignore 中包含特定的文件扩展名

java - Eclipse 不显示 git repo 中的所有包