我正在编写bash脚本,并且需要测试以查看给定的 Remote 是否存在。

为了具体起见,假设我要测试远程faraway是否存在。如果我已将某些内容推送到faraway,则可以执行if [ -d .git/refs/remotes/faraway ]; then ...。但是据我所知,即使faraway不存在,别名.git/refs/remotes/faraway仍然可以定义。

另一种选择是解析git remote的输出,看看faraway是否出现在其中。但是我想知道是否存在一种更简单的方法来检查是否定义了faraway,而不管是否存在.git/refs/remotes/faraway/

最佳答案

一个想法:您可以在git ls-remote faraway上测试退出状态。实际上,这将强制与远程进行通信,而不仅仅是在本地查找其存在与否。

git ls-remote --exit-code faraway
if test $? = 0; then
    ....
fi

07-24 09:22