Git 상태 명령어 설명 및 예제

Git은 코드의 변경 사항을 추적하고 다른 사람과 쉽게 협업할 수 있도록 도와주는 버전 관리 시스템입니다. Git은 다양한 작업을 수행하기 위해 여러 명령어를 제공합니다. 그 중 하나인 git status 명령어는 현재 파일의 상태를 보여주며, 스테이징된 변경 사항, 스테이징되지 않은 변경 사항 또는 추적되지 않는 파일을 포함합니다. 이 기사에서는 git status 명령어를 사용하여 git 워크플로를 효율적으로 관리하는 방법에 대해 논의하겠습니다.
관련: Git이 처음이라면, Git 초보자 가이드를 확인해 보세요.
git status란 무엇인가요
git status 명령어는 프로젝트의 현재 상태를 검색합니다. 커밋할 준비가 된 파일, 수정되었지만 스테이징되지 않은 파일, Git이 추적하지 않는 새로 생성된 파일 목록을 제공합니다. 또한 작업 디렉토리에서 무슨 일이 일어나고 있는지, 다음에 어떤 작업을 수행해야 할지 확인하는 데 도움이 됩니다.
Git 상태 명령어 사용의 중요성
다음은 git status 명령어 사용의 중요성을 보여주는 몇 가지 장점입니다:
- 변경된 파일, 스테이징된 파일 또는 추적되지 않는 파일을 표시합니다.
- 프로젝트의 현재 상태에 대한 개요를 제공합니다.
- 커밋할 준비가 된 변경 사항을 이해하는 데 도움이 됩니다.
- git status 명령어는 실수로 원하지 않는 파일을 커밋하는 것을 방지하는 데 도움이 됩니다.
- 워크플로를 깔끔하고 정리된 상태로 유지합니다.
- 스테이징 영역에 파일을 포함하거나 제외할 것을 상기시킵니다.
- 병합 충돌 문제 해결에 유용합니다.
git status를 사용할 때
작업 디렉토리와 스테이징 영역의 현재 상태를 검사하고 싶을 때마다 git status 명령어를 실행하세요. 개발자들은 파일을 변경한 후 이 명령어를 자주 사용합니다. 또한 이 명령어를 통해 변경된 파일, 커밋을 위해 스테이징된 파일 및 추적되지 않는 파일을 식별할 수 있습니다. 커밋하기 전에 git status 명령어를 실행하면 모든 의도한 변경 사항을 포함하고 실수로 원하지 않는 파일을 커밋하지 않도록 할 수 있습니다.
또한, git status 명령어는 브랜치를 전환하거나 새로운 변경 사항을 가져오기 전에 사용할 수 있으며, 작업 디렉토리가 깨끗한지 또는 보류 중인 업데이트가 있는지를 보여줍니다.
Git 상태 명령어 사용 방법
다음 명령어를 실행하여 git 리포지토리의 현재 상태를 확인할 수 있습니다:
git status출력은 리포지토리에 수정 사항이나 추적되지 않는 파일이 없음을 나타냅니다. 이는 우리의 작업 트리가 깨끗하다는 것을 의미합니다.

이제 git 리포지토리에 새 빈 파일을 생성해 보겠습니다:
touch new_file.txt
파일을 생성한 후 다음 명령어를 사용하여 Git 리포지토리의 상태를 확인하세요:
git status출력은 Untracked files: new_file.txt를 보여줍니다. 이는 “new_file.txt”라는 파일이 리포지토리에 존재하지만 Git이 아직 추적하지 않고 있음을 의미합니다:

git add 명령어를 적용하여 추적되지 않는 파일을 스테이징 영역으로 이동합니다:
git add new_file.txt
그런 다음 git status 명령어를 사용하여 리포지토리의 현재 상태를 모니터링합니다. 이제 출력은 커밋을 위한 보류 중인 변경 사항을 표시합니다: 새로 추가된 파일 new_file.txt. 이는 “new_file.txt”가 성공적으로 스테이징되었고 커밋할 준비가 되었음을 나타냅니다:

스테이징된 수정을 저장하려면 아래 명령어를 실행하세요:
git commit -m "My first commit"
“내 첫 번째 커밋”을 원하는 메시지로 교체하세요. 그 후 git status로 현재 상태를 확인하세요.
“커밋할 것이 없음, 작업 트리 깨끗함”이라는 메시지는 파일이 성공적으로 리포지토리에 추가되었음을 확인합니다:

“new_file.txt”를 텍스트 편집기에서 열고 몇 가지 변경 사항을 만듭니다:

그런 다음 파일이 수정된 상태를 확인하기 위해 git status 명령어를 실행합니다. 이번에는 커밋을 위해 스테이징되지 않은 변경 사항: 수정됨: new_file.txt라고 표시됩니다. 이는 파일이 업데이트되었지만 아직 스테이징 영역에 추가되지 않았음을 나타냅니다:

업데이트된 파일을 스테이징 영역에 추가하려면 다음 명령어를 실행하세요:
git add new_file.txt그런 다음 아래 명령어를 실행하여 변경 사항을 적용합니다:
git commit -m "file has been modified"
그런 다음 현재 git 상태를 확인하세요:
git status출력 스니펫은 작업 트리가 정리되었음을 나타냅니다:

이제 rm 명령어를 실행하여 파일을 제거해 보겠습니다:
git rm new_file.txt
출력에서 git은 커밋할 변경 사항: 삭제됨: new_file.txt라는 메시지를 반환합니다:

그 후, 다음 명령어를 사용하여 리포지토리의 커밋 기록에 파일 삭제를 영구적으로 기록할 수 있습니다:
git commit -m "file has been deleted"
마지막으로 아래 명령어를 실행하여 상태를 확인하세요:
git status
유용한 git status 옵션
git status 명령어와 함께 다양한 옵션을 사용하여 출력 표시 방식을 변경할 수 있습니다. 예를 들어:
git status --short를 사용하여 간결한 요약을 얻을 수 있습니다.git status -u는 추적되지 않는 파일이 표시되는 방식을 제어합니다.git status -u=normal은 일반적인 방식으로 추적되지 않는 파일을 표시합니다.git status -u=all은 추적되지 않는 디렉토리 내의 모든 개별 파일을 표시합니다.- 추적되지 않는 파일 없이 더 깔끔한 보기를 원한다면
git status -u=no를 사용할 수 있습니다. git status --porcelain옵션은 기계가 읽을 수 있는 형식으로 출력을 제공하며, 스크립팅 및 자동화 작업에 특히 유용합니다.
최종 생각
git status 명령어는 현재 작업 디렉토리와 스테이징 영역에 대한 명확하고 상세한 개요를 제공합니다. 수정된 파일, 스테이징된 파일, 추적되지 않는 파일 또는 커밋할 준비가 된 파일을 이해하는 데 도움이 됩니다. 이 명령어를 사용하면 워크플로를 정리하고 원하지 않는 변경 사항을 커밋하는 것을 피하며 항상 프로젝트의 현재 상태를 숙지할 수 있습니다.
git status 외에도 git 폴더의 캐시를 관리하기 위한 git cache 명령어에 대해서도 배워야 합니다.