結論:「..」は片方、「…」は両方の差分

git log..(ドット2つ)と...(ドット3つ)は、ブランチ間のコミット比較方法が異なる。

  • ..(2ドット): 一方のブランチにのみ存在するコミット
  • ...(3ドット): 両方のブランチで異なるコミット全て

使い分け

..(2ドット)- 未マージのコミットを確認

developにあってmainにないコミット(未マージ分のみ)

git log origin/main..origin/develop

用途:

  • PR前の差分確認
  • マージ漏れチェック
  • リリース対象の確認

結果: developにしかないコミットのみ表示(mainには既にあるコミットは除外)

...(3ドット)- 分岐後の全差分

mainとdevelopの差分(どちらか一方にしかないコミット全て)

git log origin/main...origin/develop

用途:

  • ブランチの分岐点以降の変更全体を確認
  • 両ブランチの独立した開発内容を比較

結果: mainにのみあるコミット + developにのみあるコミット

視覚的に確認

# グラフで分岐を表示
git log --oneline --graph origin/main...origin/develop

--graphオプション:

  • コミットの分岐・マージをビジュアル化
  • どちらのブランチに属するか一目で分かる

具体例

状況

main:    A - B - C - D
              \
develop:       E - F - G

..(2ドット)の結果

git log main..develop
# 結果: E, F, G(developにのみ存在)

git log develop..main
# 結果: C, D(mainにのみ存在)

...(3ドット)の結果

git log main...develop
# 結果: C, D, E, F, G(両方の差分)

よくある用途

PR作成前のコミット確認

# featureブランチにあってmainにないコミット
git log main..feature

リリース対象の確認

# developにあってmainにない(次のリリース内容)
git log origin/main..origin/develop --oneline

両ブランチの独立した変更を比較

# mainとdevelopで独立して開発された内容を全て表示
git log origin/main...origin/develop --oneline --graph

まとめ

記法意味用途
A..BBにあって
Aにないコミット
未マージ確認
PR差分確認
A...BAとBで
異なる全コミット
分岐後の全変更
両ブランチ比較
  • ..(2ドット): 片方にしかないコミット(未マージ確認)
  • ...(3ドット): 両方で異なるコミット全て(分岐後の全変更)
  • --graph: 視覚的に分岐を確認