LoginSignup
3
0

More than 1 year has passed since last update.

git diffについて

Last updated at Posted at 2017-06-07

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]の内容が(追加)か、(削除)されているということ。

コミット間の比較をすると、何に対して、追加、削除されてるのか、いつも訳が分からなくなるので、確認できて良かった。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0