11장 CLI는 가장 정확한 공통 언어다
CLI를 외우는 목적은 GUI를 버리기 위해서가 아니다. 장애 상황을 복사 가능한 명령과 텍스트로 재현하기 위해서다. 다음 여섯 줄이면 대부분의 첫 진단이 된다.
pwd
git rev-parse --show-toplevel
git status
git branch -vv
git log --oneline --graph --decorate --all -12
git remote -v
업무 시작에는 status, 수정 뒤에는 두 종류의 diff, 공유 전에는 log와 테스트를 본다. 별칭은 팀 문서에서 원래 명령을 숨기지 않는 범위로 쓴다.
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.unstage "restore --staged --"
파일명이 -로 시작하면 옵션으로 오해할 수 있다. git add -- -draft.md처럼 --로 옵션의 끝을 표시한다. 공백이 있는 경로는 따옴표로 감싼다. 비밀값이 인수나 URL에 들어가면 셸 기록에 남으므로 입력 자체를 피한다.
CLI 하루 흐름
git switch main
git fetch origin
git pull --ff-only
git switch -c docs/release-1-1
# 편집과 테스트
git diff --check
git add -p
git diff --staged
git commit -m "docs: 1.1 릴리스 공지 추가"
git push -u origin docs/release-1-1
--ff-only는 로컬과 원격이 갈라졌을 때 자동 merge를 만들지 않고 멈춘다. 멈춤은 실패가 아니라 판단 기회다.