스테이징되지 않은 파일 테스트
이 단계에서는 추적된 파일에 대해 변경 사항이 발생했지만 아직 스테이징 영역에 추가되지 않은 경우 Git 이 이를 처리하는 방식을 살펴봅니다. 이러한 변경 사항을 "unstaged" 변경 사항이라고 합니다.
~/project/my-time-machine 디렉토리에 있는지 확인합니다.
이전에 future_plans.txt를 생성하고 스테이징했습니다. 이제 변경 사항을 스테이징하지 않고 이 파일에 다른 줄을 추가해 보겠습니다.
echo "Plan 2: Invent a self-folding laundry machine" >> future_plans.txt
>> 연산자는 텍스트를 덮어쓰는 대신 기존 파일에 추가합니다.
이제 저장소의 상태를 다시 확인해 보겠습니다.
git status
다음과 유사한 출력을 볼 수 있습니다.
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: future_plans.txt
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: future_plans.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
새로운 섹션인 "Changes not staged for commit:"을 확인하세요. 이는 Git 이 스테이징 영역의 버전과 다른 future_plans.txt의 변경 사항을 감지했음을 알려줍니다. 파일은 "modified"로 나열됩니다.
이는 Git 의 핵심 개념입니다. 작업 디렉토리 (변경 사항을 만드는 곳) 는 스테이징 영역과 별개입니다. 아직 스테이징되지 않은 변경 사항이 작업 디렉토리에 있을 수 있습니다.
작업 디렉토리와 스테이징 영역 간의 차이점을 확인하려면 옵션 없이 git diff를 사용할 수 있습니다.
git diff
다음과 유사한 출력을 볼 수 있습니다.
diff --git a/future_plans.txt b/future_plans.txt
index a1b2c3d..e4f5g6h 100644
--- a/future_plans.txt
+++ b/future_plans.txt
@@ -1 +1,2 @@
Plan 1: Build a bigger time machine
+Plan 2: Invent a self-folding laundry machine
이 출력은 스테이징 영역의 future_plans.txt 버전 ( "Plan 1"만 포함) 과 작업 디렉토리의 버전 (이제 "Plan 1"과 "Plan 2" 모두 포함) 간의 차이점을 보여줍니다. + 기호는 다시 추가된 줄을 나타냅니다.
스테이징된 변경 사항과 스테이징되지 않은 변경 사항의 차이점과 git status 및 git diff를 사용하여 이를 확인하는 방법을 이해하는 것은 Git 을 효과적으로 사용하는 데 필수적입니다.
q를 눌러 diff 보기를 종료합니다.