如何检查回购是否存在?

时间:2016-10-31 21:33:05

标签: git bash

或是否有与

一起使用的命令行选项
git remote rm godaddy

如果存储库不存在,它不会抛出错误?

这个命令行选项是什么?

2 个答案:

答案 0 :(得分:1)

我认为您可以使用git ls-remote来测试是否存在回购。

尝试在没有存储库的文件夹中运行它:

git ls-remote https://github.com/git/git

答案 1 :(得分:1)

命令不会“抛出错误”。他们将消息打印到stderr并使用非零退出代码。

要将错误消息静音,您可以将stderr重定向到/dev/null

git remote rm nonexistent 2>/dev/null

要忽略非零退出代码,您可以使用|| :,如下所示:

git remote rm nonexistent 2>/dev/null || :

最后一个命令的退出代码始终为0。 如果远程存在,它将被删除,如果它不存在,则将丢弃该错误消息。

但有一点需要注意。如果远程存在但由于某种原因删除失败,则将隐藏错误消息和退出代码。这可以通过仅在退出代码为128时隐藏错误消息来改进,这在存储库不存在时发生。但我怀疑这是值得的:

out=$(git remote rm $repo 2>&1)
[ $? = 128 ] || echo "$out"