4

ローカルの git リポジトリとリモートの git リポジトリがあります。リモートリポジトリのコミットとローカルリポジトリのコミットを確認するための簡単なコマンドは何ですか?

これはプログラムで自動化されるので、解析しなければならない多くの複雑なものは必要ありません。できれば、ローカルとリモートの両方で同じテキストを出力し、コミットのみが 2 つの間で変化するようにするとよいでしょう。何か案は?

4

2 に答える 2

6

プログラムによるソリューション

プログラムによる解決策が必要な場合は、各ヘッドに保存されているコミットを見て、それらを比較できます。例えば:

remote=$(
    git ls-remote -h origin master |
    awk '{print $1}'
)
local=$(git rev-parse HEAD)

printf "Local : %s\nRemote: %s\n" $local $remote

if [[ $local == $remote ]]; then
    echo "Commits match."
else
    echo "Commits don't match."
fi

サンプル出力

Local : 9e1b4dc286acb442f7f604be7916db660b9d70cd
Remote: 9e1b4dc286acb442f7f604be7916db660b9d70cd
Commits match.
于 2012-06-24T22:36:45.897 に答える
1

リモートリポジトリがリモートによって参照されておりorigin、ブランチmasterに関心があるとすると、次のことができます。

git fetch origin

次に、次の出力を比較します。

git rev-parse master

... と:

git rev-parse origin/master

これらの2つのコマンドによって出力されるオブジェクト名が同じである場合、実行された時点でyourmastermasterinは同じでした。origingit fetch origin

于 2012-06-24T17:06:34.293 に答える