git status는 가장 먼저 읽는 dashboard야
제대로 된 작업 흐름에서 가장 자주 입력하는 Git 명령은 git status야. stage하기 전, 편집한 뒤, 어디까지 했는지 잊었을 때, 뭔가 이상할 때마다 써. 세 영역의 상태를 한눈에 알려주거든. 무엇이 staged인지, 무엇이 수정됐지만 아직 stage되지 않았는지, 무엇이 untracked인지, 어느 branch에 있는지, remote보다 얼마나 앞서거나 뒤졌는지가 보여.
기본 git status 출력은 친절하고 자세해서 배울 때 좋아. 짧은 형식인 git status -s는 파일마다 두 칸의 상태 문자를 보여줘. 왼쪽은 index, 오른쪽은 작업 트리 상태야. M_은 수정 내용을 stage했고 그 뒤 추가 변경이 없다는 뜻이고, _M은 수정했지만 stage하지 않았다는 뜻이야. MM은 stage한 뒤 또 수정해서 지금 commit하면 예전 version이 들어간다는 경고지. A_는 stage한 새 파일, ??는 untracked file이야. 이 문자에 익숙해지면 긴 문단을 읽지 않아도 상태가 한눈에 들어와.
날마다 쓸 때 유용한 flag도 있어. --branch 또는 -b는 현재 branch와 upstream의 관계를 보여주고, --ahead-behind는 기본으로 켜져 있어. 팀 작업에서는 "Your branch is ahead of 'origin/main' by 2 commits" 같은 문장을 자주 보게 될 거야. push할 commit이 있다는 신호지. git status --short --branch를 한 묶음으로 손에 익혀둬.
숨은 함정도 있어. git status는 다른 branch에만 있는 commit을 말해주지 않아. feature branch에 commit하지 않은 작업이 있다고 착각한 채 main으로 와서 status를 보면 깨끗해 보일 수 있지. 작업이 사라진 게 아니라 다른 branch에 있지만 이 dashboard는 경고하지 않아. 여러 branch를 함께 보려면 git branch -vv를 써.