完全なドキュメントはこちら: https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
次のようなレポがあるとします。
base - A - B - C - D (master)
\
\- X - Y - Z (myBranch)
レポのステータスを確認します。
> git checkout master
Already on 'master'
> git status ; git log --oneline
On branch master
nothing to commit, working directory clean
d9addce D
110a9ab C
5f3f8db B
0f26e69 A
e764ffa base
および myBranch の場合:
> git checkout myBranch
> git status ; git log --oneline
On branch myBranch
nothing to commit, working directory clean
3bc0d40 Z
917ac8d Y
3e65f72 X
5f3f8db B
0f26e69 A
e764ffa base
myBranch を使用していて、master からの分岐以降の変更のみを確認したいとします。2 ドット バージョンを使用します。
> git log --oneline master..myBranch
3bc0d40 Z
917ac8d Y
3e65f72 X
3 ドット バージョンは、master の先端から myBranch の先端までのすべての変更を示します。ただし、一般的なコミット B は含まれていないことに注意してください。
> git log --oneline master...myBranch
d9addce D
110a9ab C
3bc0d40 Z
917ac8d Y
3e65f72 X
注意してください: git log
そしてgit diff
異なる振る舞いをしてください! 動作は正反対ではありませんが、ほぼ次のようになります。
> git diff master..myBranch
diff --git a/rev.txt b/rev.txt
index 1784810..e900b1c 100644
--- a/rev.txt
+++ b/rev.txt
@@ -1 +1 @@
-D
+Z
> git diff master...myBranch
diff --git a/rev.txt b/rev.txt
index 223b783..e900b1c 100644
--- a/rev.txt
+++ b/rev.txt
@@ -1 +1 @@
-B
+Z
したがって、2 ドット バージョンは、master の先端 (つまり D) から myBranch の先端 (Z) までの差分を示しています。3 つのドットのバージョンは、myBranch のベース (つまり B) から myBranch の先端 (Z) までの違いを示しています。