Git | Git 기본 | git status


git status 명령

git status 는 작업 디렉토리의 상태와 스테이지 된 스냅 샷의 상태를 표시하는 명령이다. 이 명령을 실행하면 스테이지 된 변경 내용, 스테이지가 되지 않은 변경 내용, Git에 의한 추적 대상에서 제외 된 파일이 표시된다. 이 상태 정보 출력에는 커밋 된 변경 내역에 대한 정보는 포함되지 않는다 . 커밋 된 변경 내역에 대한 정보를 조회해야 하는 경우는 git log 명령을 사용한다.

사용법

git status

스테이지 파일, 스테이지되지 않은 파일, 추적되지 않는 파일을 나열한다.

보충 설명

git status 는 비교적 간단한 명령이다. 이 명령은 git add 와 git commit 의 두 명령을 실행 한 결과를 확인하는 것 뿐이다. 이 상태 정보는 스테이지 된 파일과 스테이지 되지 않은 파일 관련 정보도 표시된다. 아래의 출력 정보 샘플에서는 git status 를 실행했을 때의 세 가지 주요 카테고리가 표시되어 있다 :

# On branch master
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: hello.py
#
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: main.py
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# hello.pyc

표시 대상에서 파일 제외 .gitignore

추적되지 않는 파일에는 일반적으로 두 종류가 있다. 하나는 프로젝트에 추가 된 직후로 아직 한번도 스테이지 된 적이 없는 파일이고, 다른 하나는 .pyc , .obj , .exe 등의 확장자를 가지는 컴파일 된 바이너리 파일이다. 전자에 대해서는 git status 명령의 출력에 포함 할 유용하지만, 후자는 작업 디렉토리의 인식에 방해가 될 수 있다.

이 때문에 Git은 .gitignore 라는 특수 파일 경로를 작성하여 파일을 표시 대상에서 제외하는 것이 가능하다. 제외 할 파일은 한 줄에 하나씩 기입해야 하며, 또한 와일드 카드로 * 기호를 사용할 수 있다. 예를 들어, 다음 줄을 프로젝트의 루트에있는 .gitignore 파일에 추가하여 컴파일 된 Python 모듈을 git status 표시 대상에서 제외한다 :

*.pyc

사용 예

변경 내용을 커밋하기 전에 저장소의 상태를 확인하는 것은 의도하지 않은 커밋의 실행을 방지하기 위한 좋은 습관이다. 이 예제에서는 스냅 샷의 무대 안팎으로 커밋 전후 저장소의 상태를 표시한다 :

# Edit hello.py
git status
# hello.py is listed under "Changes not staged for commit"
git add hello.py
git status
# hello.py is listed under "Changes to be committed"
git commit
git status
# nothing to commit (working directory clean)

첫 번째 상태 출력은 파일이 스테이지 되지 않은 파일이 표시되어 있다. git add 를 실행 한 결과가 두 번째 git status 에 반영되어 있으며, 마지막 상태 출력은 커밋 할 파일은 아무것도 남아 있지 않은 것이다. 즉, 작업 디렉토리의 상태는 직전의 커밋 결과와 일치되어 표시되어 있다. Git 명령에는 변경의 잘못 쓰기를 방지하기 위해 작업 디렉토리가 클린한 상태 아니면, 사용할 수 없는 것이 있다 (예를 들어, git merge ).