ローカルのブランチの最新commitがリモートのブランチの最新commitと一致しているかを安全に確認する

開発環境

> git --version
git version 2.32.1 (Apple Git-133)

モチベーション

ローカルのブランチのcommitとリモートのブランチのcommitが一致しているかどうか安全に確認したい。
以下のように乱暴に確認できるのだが、もしローカルにリモートには無いcommitがあったらpushされるので安全ではない。安全に確認したい!

> git push origin head
Everything up-to-date

結論

git diff を使おう。

> git diff origin/{BRANCH_NAME} {BRANCH_NAME}  

ブランチ間に対して git diff が実行できる。
git diff は最終commitとステージングに上げていない変更との差分を出力するためだけに使っていた。

ワンライナーで現在のブランチに対して確認

現在のブランチに対して確認することが多そうなのでワンライナーで確認できるようにした。

> git branch | grep "*" | awk '{print $2}' | {read v;  git diff origin/$v $v}

参考