1

gitリポジトリのいくつかのディレクトリを自動的に更新するシェルスクリプトを書いていますが、プル元のリモートオリジンを持たないリポジトリを無視したいと思います。これまでのところ私は

if git remote 2>&1 >/dev/null; then

これは、ディレクトリがgitリポジトリであるかどうかを正常に判別します。しかし、新しいgitリポジトリの場合、

git remote

git pull「origin」とエラーステータス0を返します。そのようなリポジトリと、コマンドが何かを実行するリポジトリをどのように区別しますか?

使用できます

git remote show origin

ただし、オリジンサーバーが存在する場合は接続します。高速でローカルなコマンドを使用することをお勧めします。

4

2 に答える 2

1

.git/configの存在をいつでも確認できます。[remote "origin"]

#/bin/bash
if grep -Fxq '[remote "origin"]' .git/config
then
    echo "yes"
else
    echo "no"
fi
于 2012-11-26T16:54:48.050 に答える
0

リポジトリにオリジンがある場合は、フォルダ.git/refs/remotes/originが存在している必要があります。

test -d .git/refs/remotes/origin

0を返します。

于 2012-11-26T16:59:19.603 に答える