我正在编写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