ローカルの git リポジトリとリモートの git リポジトリがあります。リモートリポジトリのコミットとローカルリポジトリのコミットを確認するための簡単なコマンドは何ですか?
これはプログラムで自動化されるので、解析しなければならない多くの複雑なものは必要ありません。できれば、ローカルとリモートの両方で同じテキストを出力し、コミットのみが 2 つの間で変化するようにするとよいでしょう。何か案は?
プログラムによる解決策が必要な場合は、各ヘッドに保存されているコミットを見て、それらを比較できます。例えば:
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.
リモートリポジトリがリモートによって参照されておりorigin
、ブランチmaster
に関心があるとすると、次のことができます。
git fetch origin
次に、次の出力を比較します。
git rev-parse master
... と:
git rev-parse origin/master
これらの2つのコマンドによって出力されるオブジェクト名が同じである場合、実行された時点でyourmaster
とmaster
inは同じでした。origin
git fetch origin