我正在写一个bash脚本,我需要一个测试来查看给定的遥控器是否存在.
假设具体,我想测试遥控器是否faraway存在.如果我把东西推到了faraway,我就能做到if [ -d .git/refs/remotes/faraway ]; then ....但据我所知,faraway即使.git/refs/remotes/faraway不存在,别名仍然可以定义.
另一个选择是解析输出,git remote看看是否faraway出现.但我想知道是否有更简单的方法来检查是否faraway已定义,无论是否.git/refs/remotes/faraway/存在.
Chr*_*her 36
一想法:你可以测试退出状态git ls-remote faraway.这实际上会强制与遥控器进行通信,而不是仅仅在本地查找它的存在与否.
git ls-remote --exit-code faraway
if test $? = 0; then
....
fi
Run Code Online (Sandbox Code Playgroud)
tig*_*tig 30
另一种检查是否faraway定义的方法是.git/config:
if git config remote.faraway.url > /dev/null; then
…
fi
Run Code Online (Sandbox Code Playgroud)
reu*_*ano 11
如果定义了远程.git/config,则可以避免使用ping远程服务器git remote.
if git remote | grep faraway > /dev/null; then
...
fi
Run Code Online (Sandbox Code Playgroud)