git diff 명령어로 파일 변경 내용 확인

git diff 명령어는 현재 브랜치의 변경된 내용을 출력합니다. 또한 이미 반영된 commit의 변경사항을 확인할 수 있습니다.

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의 변경 사항이 staging 영역으로 이동됩니다.

$ 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. 두개의 commit의 변경 사항 확인

git diff <commit1> <commit2>는 commit1과 commit2의 차이점을 보여줍니다.

다음과 같이 두개의 commit 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()) {
Loading script...
codechachaCopyright ©2019 codechacha