git diffで+と-がどっちがどっちかわからなくなるから、一度確認する
git logの状態
$ git log
commit eb59cf6d61d2c9b2a106d0d64cca976cad2efc44
Author: kohei.shimadutsu
Date: Wed Jun 7 20:12:10 2017 +0900
third commit
commit 85448e9a9477f077a4904a48eb467585eb4f5015
Author: kohei.shimadutsu
Date: Wed Jun 7 20:11:44 2017 +0900
second commit
commit f90d4dd80c16d7fa7f7b9cc9ed6827b0f4319170
Author: kohei.shimadutsu
Date: Wed Jun 7 20:10:49 2017 +0900
initial commit
git status
README.mdに変更があります。
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
git diff
git diffの後ろに何も指定しなければ、コミットされていない状態のファイルとHEADの差分が表示され、+が追加された部分になります。
$ git diff
diff --git a/README.md b/README.md
index e4bfe52..a931f63 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
# README.md
## second commit
### third commit
+uncommited
git diff [commitハッシュ]
git logで2番目に表示されたハッシュ値を指定する。
$ git diff 85448e9a9477f077a4904a48eb467585eb4f5015
diff --git a/README.md b/README.md
index bd1f0c8..a931f63 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,4 @@
# README.md
## second commit
+### third commit
+uncommited
git diff [commitハッシュ1]..[commitハッシュ2]
git logで2番目, 1番目に表示されたハッシュ値を指定する。
$ git diff 85448e9a9477f077a4904a48eb467585eb4f5015..eb59cf6d61d2c9b2a106d0d64cca976cad2efc44
diff --git a/README.md b/README.md
index bd1f0c8..e4bfe52 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# README.md
## second commit
+### third commit
未コミットの差分が表示されなくなりました。
[再び] git diff [commitハッシュ]
git checkout .
で未コミットのREADME.md
に変更内容を取り消します。
もう一度、ハッシュ値を一つだけ、git log
で2番目に表示されたハッシュ値を指定してみます。
$ git diff 85448e9a9477f077a4904a48eb467585eb4f5015
diff --git a/README.md b/README.md
index bd1f0c8..e4bfe52 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# README.md
## second commit
+### third commit
上と同じ結果になりました。
git diff [commitハッシュ]..HEAD
変更がない状態での git diff [commitハッシュ]
と git diff [commitハッシュ]..HEAD
が同じであるということです。
脱線したので、元の話に戻って。
git diff [commitハッシュ1]..[commitハッシュ2]
は、
[commitハッシュ1]
に比べて、[commitハッシュ2]
の内容が+
(追加)か、-
(削除)されているということ。
コミット間の比較をすると、何に対して、追加、削除されてるのか、いつも訳が分からなくなるので、確認できて良かった。