結論:「..」は片方、「…」は両方の差分
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..B | Bにあって Aにないコミット | 未マージ確認 PR差分確認 |
A...B | AとBで 異なる全コミット | 分岐後の全変更 両ブランチ比較 |
..(2ドット): 片方にしかないコミット(未マージ確認)...(3ドット): 両方で異なるコミット全て(分岐後の全変更)--graph: 視覚的に分岐を確認
