我正在写一个bash脚本,我需要一个测试来查看给定的遥控器是否存在。
假设具体,我想测试远程faraway
是否存在。如果我将某些内容推送到faraway
,我可以if [ -d .git/refs/remotes/faraway ]; then ...
。但据我所知,即使faraway
不存在,仍可以定义别名.git/refs/remotes/faraway
。
另一个选择是解析git remote
的输出并查看是否出现faraway
。但我想知道是否有一种更简单的方法来检查faraway
是否已定义,无论.git/refs/remotes/faraway/
是否存在。
答案 0 :(得分:33)
一想法:您可以在git ls-remote faraway
上测试退出状态。这实际上会强制与遥控器进行通信,而不是仅仅在本地查找它的存在与否。
git ls-remote --exit-code faraway
if test $? = 0; then
....
fi
答案 1 :(得分:26)
另一种检查faraway
中是否定义了.git/config
的方法:
if git config remote.faraway.url > /dev/null; then
…
fi
答案 2 :(得分:10)
如果在.git/config
中定义了遥控器,则可以避免使用git remote
ping远程服务器。
if git remote | grep faraway > /dev/null; then
...
fi