WEBBOOK CHAPTER

현장에서 살아남는 Git: 11장 CLI는 가장 정확한 공통 언어다

11장 CLI는 가장 정확한 공통 언어다

CLI를 외우는 목적은 GUI를 버리기 위해서가 아니다. 장애 상황을 복사 가능한 명령과 텍스트로 재현하기 위해서다. 다음 여섯 줄이면 대부분의 첫 진단이 된다.

ReleaseDesk의 feature/search 변경을 CLI, SourceTree, IntelliJ에서 동일하게 관찰한 개념 화면
ReleaseDesk의 feature/search 변경을 CLI, SourceTree, IntelliJ에서 동일하게 관찰한 개념 화면
공유 여부와 변경 위치에 따라 restore, reset, revert, reflog를 선택하는 복구 흐름
공유 여부와 변경 위치에 따라 restore, reset, revert, reflog를 선택하는 복구 흐름

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를 만들지 않고 멈춘다. 멈춤은 실패가 아니라 판단 기회다.