35

私は bash スクリプトを書いていますが、特定のリモートが存在するかどうかを確認するテストが必要です。

具体的に言うと、リモートfarawayが存在するかどうかをテストしたいとします。に何かをプッシュした場合faraway、実行できますif [ -d .git/refs/remotes/faraway ]; then ...。しかし、私が見る限り、エイリアスは存在しなくfarawayても定義できます。.git/refs/remotes/faraway

もう 1 つのオプションは、出力を解析してそこに表示さgit remoteれるかどうかを確認farawayすることです。farawayしかし、存在するかどうかに関係なく、定義されているかどうかを確認する簡単な方法があるかどうか疑問に思ってい.git/refs/remotes/faraway/ます。

4

3 に答える 3

48

1 つの考え: で終了ステータスをテストできますgit ls-remote faraway。これにより、リモートの存在または不在をローカルで探すだけでなく、実際にリモートとの通信が強制されます。

if git ls-remote --exit-code faraway; then
    ....
fi
于 2012-08-29T03:59:05.183 に答える
11

リモートが で定義されている場合は.git/config、リモート サーバーへの ping を回避できますgit remote

if git remote | grep faraway > /dev/null; then
  ...
fi
于 2014-04-29T01:30:06.303 に答える