ブランチ作成時と現在をスリードット(...)で比較する
前提
(1) git co master
(2) git co -b branch1
(3) vi 1.txt
(4) git add 1.txt; git commit -m 'Changed 1.txt'
(5) git co master
(6) vi 2.txt
(7) git add 2.txt; git commit -m 'Changed 2.txt'
- (1) masterブランチに入る
- (2) masterブランチからbranch1ブランチを作って入る
- (3) (4) 1.txtファイルを編集してAddしてCommitする
- (5) masterブランチに入る
- (6) (7) 2.txtファイルを編集してAddしてCommitする
ブランチ作成時と現在をスリードット(...)で比較する
git diff master...branch1
diff --git a/1.txt b/1.txt
index 58c9bdf..2e6bfd4 100644
--- a/1.txt
+++ b/1.txt
@@ -1 +1 @@
-111
+111X
- 上のようにbranch1ブランチ作成時のmasterと現在のbranch1を比較するので、1.txtだけ表示される
- また、branch1ブランチ作成時のmasterの状態(=コミット)のことをマージベース(Merge Base)と呼ぶ
ツードット(..)で比較すると
git diff master..branch1
diff --git a/1.txt b/1.txt
index 58c9bdf..2e6bfd4 100644
--- a/1.txt
+++ b/1.txt
@@ -1 +1 @@
-111
+111X
diff --git a/2.txt b/2.txt
index e7a15fa..c200906 100644
--- a/2.txt
+++ b/2.txt
@@ -1 +1 @@
-222Y
+222
- master1ブランチ作成後のコミットである2.txtも表示される
- すなわち、最新のmasterブランチと最新のbranch1ブランチを比較していることになる
- なお、git diff master..branch1はgit diff master branch1としても同じでどちらでもよい
(補足) git logのスリードットはgit diffとは意味が違うので注意する
https://stackoverflow.com/questions/7251477/what-are-the-differences-between-double-dot-and-triple-dot-in-git-dif/7256391
参考
https://stackoverflow.com/questions/7251477/what-are-the-differences-between-double-dot-and-triple-dot-in-git-dif/7256391