git diffコマンドでファイルの変更を確認する

git diff命令は現在のブランチの変更内容を出力します。また、すでに反映されているコミットの変更を確認することもできます。

1. Unstaged領域の変更を確認する

デフォルトで First.javaのコードを変更すると、変更はunstaged領域にあります。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   First.java

git diff命令は、以下のようにunstaged領域の変更を出力します。

$ git diff

diff --git a/First.java b/First.java
index 9335791..a728477 100644
--- a/First.java
+++ b/First.java
@@ -14,7 +14,7 @@ import tech.thdev.media_projection_library.R
 internal class MediaProjectionAccessActivity : AppCompatActivity() {

     companion object {
-        private const val REQ_CODE_MEDIA_PROJECTION = 1000
+        private const val REQ_CODE_MEDIA_PROJECTION = 2000

         fun newInstance(context: Context): Intent =
             Intent(context, MediaProjectionAccessActivity::class.java).apply {

git add . コマンドを入力すると、変更内容が staging 領域に移動し、unstaged 領域には何も残りません。 この状態で git diff 命令は何も出力しなくなります。

2. Staging領域の変更点を確認する

git add .コマンドを入力すると、 First.javaの変更はスタッグ領域に移動されます。

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   First.java

このとき、 git diff 命令は何も出力しません。これは、デフォルトではunstaged領域の変更のみを出力するためです。

$ git diff

Staging領域の修正内容を見たい場合は、次のように --cachedオプションを使用してください。

$ git diff --cached
diff --git a/First.java b/First.java
index 9335791..a728477 100644
--- a/First.java
+++ b/First.java
@@ -14,7 +14,7 @@ import tech.thdev.media_projection_library.R
 internal class MediaProjectionAccessActivity : AppCompatActivity() {

     companion object {
-        private const val REQ_CODE_MEDIA_PROJECTION = 1000
+        private const val REQ_CODE_MEDIA_PROJECTION = 2000

         fun newInstance(context: Context): Intent =
             Intent(context, MediaProjectionAccessActivity::class.java).apply {

3. 2つのコミットの変更を確認する

git diff <commit1> <commit2>はcommit1とcommit2の違いを示しています。

次のように、2つのコミットIDの変更を比較できます。

$ git diff ef8bac6 adaa735
diff --git a/First.java b/First.java
index 19fa33b..9991d07 100644
--- a/First.java
+++ b/First.java
@@ -22,12 +22,6 @@ internal class MediaProjectionAccessActivity : AppCompatActivity() {
             }
     }

-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        setContentView(R.layout.activity_media_projection)
-        createMediaProjection()
-    }
-
     private fun createMediaProjection() {
         val mediaProjectionManager = getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager
         val result: ActivityResultLauncher<Intent> = registerForActivityResult(MediaProjectionResultContract()) {
codechachaCopyright ©2019 codechacha