Git 如何检查回购是否存在?
或者是否有一个命令行选项可用于Git 如何检查回购是否存在?,git,bash,Git,Bash,或者是否有一个命令行选项可用于 git remote rm godaddy 如果存储库不存在,它不会抛出错误 这个命令行选项是什么?我认为您可以使用gitlsremote来测试repo是否存在 尝试在没有存储库的文件夹中运行此操作: git ls-remote https://github.com/git/git 命令不会“抛出错误”。它们将消息打印到stderr,并使用非零退出代码 要使错误消息静音,可以将stderr重定向到/dev/null git remote rm nonexist
git remote rm godaddy
如果存储库不存在,它不会抛出错误
这个命令行选项是什么?我认为您可以使用
gitlsremote
来测试repo是否存在
尝试在没有存储库的文件夹中运行此操作:
git ls-remote https://github.com/git/git
命令不会“抛出错误”。它们将消息打印到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"