git diff 를 사용하여 수정 사항 검토
이 단계에서는 git diff 명령어를 사용하여 파일에서 변경한 정확한 내용을 확인하는 방법을 배우겠습니다. git status는 어떤 파일이 변경되었는지 알려주는 반면, git diff는 해당 파일 내에서 무엇이 변경되었는지 보여줍니다.
먼저, message.txt 파일을 변경해 보겠습니다. 여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.
nano 편집기를 사용하여 파일을 엽니다.
nano message.txt
파일에 새 줄을 추가합니다. 예를 들어 다음과 같이 추가합니다.
Hello, Future Me
This is a new line.
Ctrl + X를 눌러 종료하고, Y를 눌러 저장하고, Enter를 눌러 파일 이름을 확인합니다.
이제 파일을 수정했으므로 git status를 사용하여 Git 이 이 변경 사항을 어떻게 인식하는지 살펴보겠습니다.
git status
message.txt가 수정되었다는 것을 나타내는 출력을 볼 수 있습니다.
On branch master
Your branch is up to date with 'origin/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: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
Git 은 message.txt가 modified되었고 변경 사항이 not staged for commit이라고 알려줍니다. 즉, 파일을 변경했지만 아직 Git 에 이 변경 사항을 커밋할 준비를 하라고 지시하지 않았습니다.
이제 git diff를 사용하여 특정 변경 사항을 살펴보겠습니다.
git diff
다음과 유사한 출력을 볼 수 있습니다.
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+This is a new line.
이 출력을 이해해 보겠습니다.
--- 및 +++로 시작하는 줄은 원래 파일 (a/message.txt) 과 새 파일 (b/message.txt) 을 보여줍니다.
@@로 시작하는 줄은 "hunk header"라고 합니다. 파일에서 변경 사항이 있는 위치를 보여줍니다. -1 +1,2는 원래 파일의 1 행부터 시작하여 1 행이 제거되었고, 새 파일의 1 행부터 시작하여 2 행이 추가되었음을 의미합니다.
-로 시작하는 줄은 제거된 줄을 보여줍니다.
+로 시작하는 줄은 추가된 줄을 보여줍니다.
이 경우, 한 줄을 추가했으므로 +로 시작하는 줄을 볼 수 있습니다.
git diff 명령어는 변경 사항을 스테이징하거나 커밋하기 전에 검토하는 데 매우 유용합니다. 실수를 발견하고 의도한 수정 사항만 커밋에 포함하는 데 도움이 됩니다.
q를 눌러 diff 보기를 종료하고 명령줄로 돌아갑니다.