git status

Show the working tree status

Git 공식 매뉴얼(man git-status)

개발자들이 키보드에서 git 다음에 가장 많이 입력하는 단어이며, 일종의 무의식적 손가락 떨림 증상에 가깝다. 쓸데없는 수다쟁이 같지만, 얘마저 없으면 난 길 잃은 어린아이가 된다(...)

1. 개요

현재 작업 중인 작업 디렉터리(Working Directory)와 준비 영역(Staging Area)의 상태를 아주 적나라하게 보여주는 모니터링 명령어다. 변경된 파일이 있는지, 어떤 파일이 추적 대상에서 제외되었는지, 커밋을 하기 직전에 정돈된 상태인지를 한눈에 브리핑해 주는 소중한 비서 역할을 담당한다.

2. 빨간 맛(Untracked/Modified)과 초록 맛(Staged)

이 명령어를 쳤을 때 마주하게 되는 색상은 개발자의 멘탈을 극단적으로 대변한다. 변경되었으나 아직 무대에 올라가지 못한 파일들은 시뻘건 경고색으로 표기되어 불안감을 고조시키고, git add를 거쳐 고결한 임시 보관함에 들어간 파일들은 영롱한 초록색(Changes to be committed)으로 환하게 밝혀진다. 실무에서는 이 초록색 신호등을 확인해야 비로소 안도의 한숨을 쉴 수 있다.1

3. 무지성 난사와 손가락 버릇

수많은 전산학 전공자나 현업 개발자들은 다음 단계로 넘어가기 전, 습관적으로 git status를 치며 멍때리는 독특한 정신과적 질환(?)을 공유한다. 방금 전에 쳐서 아무 변화가 없는 것을 뻔히 알면서도, 왠지 모르게 손가락이 알아서 g-i-t- -s-t-a-t-u-s를 미끄러지듯 타이핑하고 있는 현상이다.

4. 실제 사용 예시

작업 중에는 가장 먼저 현재 상태를 확인한다. 어떤 파일이 수정됐고, 무엇이 스테이징됐는지 여기서 갈린다.

git status

# 짧은 형식으로 보기
git status -sb

실무에서는 커밋 전후, pull 전후, 충돌 해결 후에 습관처럼 찍어 보는 명령어다.

git add src/app.ts
git status -sb
git commit -m "Update app flow"
git status -sb

5. 관련 밈 및 드립

5.1. 습관성 status 타이핑 증후군

인터넷 브라우저의 F5(새로고침) 버튼처럼, 개발을 하다가 뇌가 멈추는 순간 터미널에 무한히 git status를 입력하는 현상이다. 로그를 뒤져보면 전체 커맨드 사용량의 40% 이상을 차지하는 기현상을 볼 수 있으며, 이로 인해 아무 의미 없는 쉘 엔터 공백만 늘어간다.

5.2. The Great Wall of Git

빌드 결과물인 node_modulestarget 폴더를 gitignore에 등록하는 것을 까먹었을 때 마주하는 밈이다. 단 한 번의 빌드로 인해 생성된 수십만 개의 자잘한 캐시 파일이 빨간색 폭포수처럼 쏟아져 나와 터미널 스크롤을 무한대로 폭파시키는 장관을 감상할 수 있다.

6. 여담

  • 단축 옵션: 귀찮음이 극에 달한 고수들은 git status -s (short format) 옵션을 애용하며, 빨간색 M, 초록색 A 같은 극도의 미니멀리즘 기호로 상황을 빠르게 판단한다.
  • 터미널 테마: 많은 개발자들이 status의 가독성을 극대화하기 위해 터미널 테마를 커스터마이징하는 데 개발 시간의 10% 이상을 허비하곤 한다.
  • 안전장치: 이 명령어를 치지 않고 무지성으로 커밋을 남발하다가는 전혀 엉뚱한 임시 메모장 파일이나 인증 키 파일이 함께 아카이브되는 영광을 맞이하게 된다.

7. 관련 문서

각주

  1. 물론 초록색으로 변했다고 해서 다 안전한 것은 아니며, 단지 커밋 대기 상태일 뿐이라 언제든 다시 엎을 수 있다.