Git 마스터하기 - status 명령어
git status란 무엇인가? git status 명령어는 현재 작업 중인 Git 리포지토리의 상태를 확인하는 데 사용됩니다.
- 워킹 디렉토리(Working Directory), 스테이징 영역(Staging Area), 그리고 브랜치 상태를 종합적으로 보여줍니다.
-
Git에서의 모든 작업은 파일 상태에 따라 이루어지기 때문에, git status는 작업 흐름의 중요한 출발점입니다.
- 우리가 작업하는 Working Directory의 모든 파일은 크게 Tracked(관리대상임)와 Untracked(관리대상이 아님)로 나뉜다. 이 중 ‘Tracked 파일’만 파일 상태를 가진다.
파일 상태의 종류 3가지
-
Unmodified상태 : 마지막 커밋 이후 아직 아무것도 수정하지 않은 파일의 상태 ㄴ> 처음 저장소를 Clone 하면 모든 파일은 Tracked이면서 Unmodified 상태
- Modified상태 : Unmodified 상태 파일을 수정하면 Git은 알아서 그 파일을 Modified 상태로 인식
- Staged상태 : Modified상태 파일을 ”Staging Area에 추가”하면 Staged 상태 ㄴ> Staged 상태의 파일만 커밋가능하다. ㄴ> ”Staging Area에 추가” = “파일을 (add = stage = 스테이징 = Index에 등록 = 추가)한다.”
git status 출력 설명
git status를 실행하면 일반적으로 아래와 같은 정보가 출력됩니다.
실행 결과 메시지는 다음과 같습니다.
ㄴ> On branch branch-name 현재 작업 중인 브랜치 이름을 표시
ㄴ> Changes to be committed 에 들어 있는 파일은 Staged 상태라는 것
ㄴ> Changes not staged for commit 에 들어 있는 파일은 수정한 파일이 Tracked 상태이지만 아직 Staged 상태는 아니라는 것
ㄴ> Untracked files 부분에 속해 있는 파일은 Untracked 상태라는 것을 의미한다
ㄴ> Clean Working Tree 변경 사항이 없고, 모든 파일이 최신 상태
- 브랜치 정보
On branch <branch-name>
- 현재 작업 중인 브랜치 이름을 표시합니다.
- 브랜치가 최신 상태인지, 아니면 커밋이 뒤처져 있는지를 알려줍니다.
- 상태 메시지
- Changes to be Committed (커밋될 변경 사항):
스테이징 영역에 추가된 변경 사항이 있으며, 다음 커밋에 포함될 준비가 되어 있습니다.Changes to be committed: (use "git restore --staged <file>..." to unstage) <file-name>
- Changes to be Committed (커밋될 변경 사항):
- Changes Not Staged for Commit (스테이징되지 않은 변경 사항):
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) <file-name>
- Untracked Files (추적되지 않은 파일):
Git이 아직 관리하지 않는 새 파일입니다. git add로 스테이징할 수 있습니다.Untracked files: (use "git add <file>..." to include in what will be committed) <file-name>
- Clean Working Tree (정리된 상태):
변경 사항이 없고, 모든 파일이 최신 상태nothing to commit, working tree clean
Git 에서 파일 상태 ‘짧게’ 확인하기
- ‘-s’, ‘–short’ 옵션 : $ git status 명령 간단하게 보여주는 옵션 ㄴ> $ git status -s 명령어 실행 시 결과에 ‘상태정보 컬럼’에 2개의 상태가 표시되는데,
상태표시 종류
- ?? 표시 : 추적하지 않는 새 파일
- - A 표시 : Staged 상태로 추가한 파일 중 새로 생성한 파일
- - M 표시 : 수정한 파일 - 상태 비었으면 그 상태의 파일이 없는 것
Staging Area 상태 표시 | Working Tree 상태 표시 | 파일 | 설 명 |
M | message3.md | 내용을 변경했지만 아직 Staged 상태로 추가하지는 않음 | |
M | REAMDE.md | 내용을 변경하고 Staged 상태로 추가까지 한 상태 | |
M | M | message.md | 변경해서 Staged 상태로 추가한 후 또 내용을 변경해서 Unstaged 상태 |
A | message2.md | 파일이 생성되어 Staged 상태로 추가까지 한 상태 | |
A | M | message4.md | 파일이 생성되어 Staged 상태로 추가 후, 내용을 변경해서 Unstaged 상태 |
? | ? | message5.md | 추적하지 않는 새 파일 |
댓글남기기