2

git fetchorigin/masterネットワークを経由して、ローカル ホストから最新のスナップショットを取得します。マージはしませんが、スナップショットをフェッチするだけです。実行した直後にgit fetchgit status(local)masterが先行しているか遅れているかがわかりorigin/masterます。

master私が欲しいのは、(local)のコンテンツが のコンテンツと同等かどうかを教えてくれる git コマンドだけですorigin/master。明らかに、それを判断するためにネットワークを経由する必要がありますが、その結果に関するメッセージ (git fetchまたは他の git コマンドの出力など) を出力してはならず、最後にyes/true(同等の場合) またはno/false(異なる場合) または何かのみを出力する必要があります。似ている。

これを行うことができる git 内部コマンドまたは API はありますか?!

4

2 に答える 2

4

フラグを使用し-qて無音にすることができますgit fetch

git fetch -q
if [ "$(git rev-parse origin/master)" == "$(git rev-parse master)" ]; then
    echo yes
else
    echo no
fi
于 2012-10-06T23:02:10.687 に答える
0

私はついに次のコードスニペットを使用しました。

output=`git fetch --dry-run 2>&1`

if [ "$output" != "" ]; then
    echo "***********************************************"
    echo "*                    ERROR                    *"
    echo "* Your git source directory is not up to date *"
    echo "***********************************************"
fi

の出力の解析に問題git fetch --dry-runがありましたが、コンソールメッセージがGitに属していることがわかりましたstderr :'gitfetch--dry-run'コマンドの出力をリダイレクト/解析できません

于 2012-10-31T03:49:44.820 に答える