소개
이 랩에서는 Git 저장소에 Stash 된 변경 사항이 있는지 확인하는 방법을 배우게 됩니다. 기존 Stash 를 보기 위해 git stash list 명령을 살펴보고, 작업 디렉토리의 상태를 확인하기 위해 git status를 사용합니다.
단계별로 진행하면서, git stash를 사용하여 임시로 저장한 변경 사항이 있는지 확인하고, Stash 나 커밋되지 않은 변경 사항이 없을 때 작업 트리가 깨끗한지 확인하는 방법을 이해하게 될 것입니다.
git stash list 실행하여 확인
이 단계에서는 git stash에 대해 알아보겠습니다. 기능을 개발하고 있는데 갑자기 다른 작업으로 전환하거나 버그를 수정해야 하는 상황을 상상해 보세요. 현재 작업은 아직 커밋할 준비가 되지 않았지만, 잃고 싶지는 않습니다. 이럴 때 git stash가 유용합니다!
git stash는 커밋되지 않은 변경 사항 (스테이징된 변경 사항과 스테이징되지 않은 변경 사항 모두) 을 임시로 저장하고 작업 디렉토리를 HEAD 커밋과 일치하도록 되돌립니다. 현재 작업을 안전한 곳에 잠시 보관하여 다른 작업을 수행한 다음 나중에 다시 돌아올 수 있는 것과 같습니다.
먼저 Stash 된 변경 사항이 있는지 확인해 보겠습니다. 터미널에서 ~/project/my-time-machine 디렉토리에 있는지 확인하고 다음 명령을 실행합니다.
cd ~/project/my-time-machine
git stash list
이 저장소에서 git stash를 처음 사용하는 경우, 출력은 비어 있거나 Stash 가 없다는 메시지가 표시될 것입니다. 즉, 현재 저장소에 저장된 Stash 가 없다는 의미입니다.
## Stash가 존재하지 않는 경우, 다음과 같은 출력이 없을 수 있습니다.
## No stashed changes found.
git stash list를 이해하는 것은 Stash 된 변경 사항을 관리하는 첫 번째 단계입니다. 이를 통해 저장된 Stash 를 확인하고, 적용하거나 삭제하기 전에 중요한 정보를 얻을 수 있습니다.
git status 로 확인
이전 단계에서는 git stash list를 사용하여 기존 Stash 를 확인했습니다. 이제 git status를 사용하여 작업 디렉토리의 현재 상태를 확인해 보겠습니다. 이 명령은 어떤 변경 사항이 있는지, 그리고 Git 에서 추적하는지 이해하는 데 필수적입니다.
여전히 ~/project/my-time-machine 디렉토리에 있는지 확인합니다. 다음 명령을 실행합니다.
git status
이전 커밋 (이전 랩에서) 이후 변경 사항이 없으므로, 출력은 작업 트리가 깨끗하다고 표시되어야 합니다.
On branch master
nothing to commit, working tree clean
이 출력은 저장소에 커밋되지 않은 변경 사항이 없음을 확인합니다. 작업 디렉토리는 master 브랜치의 최신 커밋과 일치합니다. 이는 커밋을 생성하거나 Stash 를 적용하고 충돌을 해결한 후에 예상되는 상태입니다.
git status의 출력을 이해하는 것은 Git 워크플로우를 관리하는 데 매우 중요합니다. 어떤 파일이 수정되었는지, 다음 커밋을 위해 스테이징되었는지, 그리고 추적되지 않는 파일이 무엇인지 알려줍니다.
Stashless Repository 테스트
이전 단계에서 저장소가 깨끗하고 기존 Stash 가 없음을 확인했습니다. 이는 git stash를 실험하기에 이상적인 상태입니다.
git stash가 어떻게 작동하는지 보여주기 위해 먼저 저장소에 몇 가지 변경 사항을 적용해야 합니다. 이전 랩에서 생성한 message.txt 파일을 수정해 보겠습니다.
~/project/my-time-machine 디렉토리에 있는지 확인합니다. nano 편집기를 사용하여 message.txt 파일을 엽니다.
nano message.txt
파일에 새 줄을 추가합니다. 예를 들어 다음과 같습니다.
Hello, Future Me
This is a new line.
Ctrl + S를 눌러 파일을 저장하고, Ctrl + X를 눌러 nano를 종료합니다.
이제 저장소의 상태를 다시 확인해 보겠습니다.
git status
message.txt가 수정되었다는 출력을 볼 수 있습니다.
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: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
이 출력은 message.txt에 변경 사항을 적용했지만, 이러한 변경 사항이 아직 커밋을 위해 스테이징되지 않았음을 보여줍니다. 이는 git stash를 사용하기에 완벽한 시나리오입니다. 다음 단계에서는 git stash를 사용하여 이러한 변경 사항을 임시로 저장합니다.
요약
이 랩에서는 Git 저장소에서 Stash 된 변경 사항을 확인하는 방법을 배웠습니다. 먼저 git stash list 명령을 사용하여 현재 저장된 Stash 가 있는지 확인했습니다. 빈 출력 또는 Stash 가 없다는 메시지는 git stash를 사용하여 임시로 저장된 변경 사항이 없음을 확인합니다.
그런 다음 git status를 사용하여 작업 디렉토리의 상태를 확인했습니다. git status 출력에서 나타나는 깨끗한 작업 트리 (clean working tree) 는 저장소에 커밋되지 않은 변경 사항이 없음을 확인합니다. 이 두 명령은 Git 저장소의 현재 상태를 이해하고 Stash 된 변경 사항을 관리하는 데 기본적인 것입니다.



