피드로 돌아가기
The Problem With `git add .`
Dev.toDev.to
DevOps

The Problem With `git add .`

개발자가 fzf 기반 커스텀 셸 함수로 git add 프롬프트를 구현해 선택적 파일 스테이징으로 커밋 빈도 증가

Jerry Schneider2026년 3월 24일9intermediate

Context

기존 git add .는 워킹 트리의 모든 변경사항을 일괄 스테이징하므로 의도하지 않은 파일(임시 파일, 다른 브랜치의 변경사항, AI 도구가 생성한 아티팩트)이 함께 커밋되는 문제가 발생했다. 실제 개발 워크플로우에서는 하나의 커밋에 여러 무관한 변경사항이 섞여있는 것이 일반적이었다.

Technical Solution

  • git status --porcelain로 스테이징 대상 파일 수집: 머지 충돌(UU, AA, DD 등) 상태와 일반 변경사항(MM, M, D, ??) 구분
  • fzf를 파이프라인에 연결해 멀티셀렉트 UI 제공: Tab으로 다중선택, Enter로 확정
  • 파일별 상태별 컬러 프리뷰 구현: 신규 파일은 녹색, 삭제 파일은 빨강, 수정 파일은 git diff --color=always로 표시
  • 선택된 파일만 순회하며 개별 git add 실행: 각 파일별로 "Staged: {filename}" 메시지 출력
  • 머지 상황과 일반 변경사항을 조건문으로 분기 처리: [[ -z "$files" ]] 체크로 상태별 로직 구분

Impact

정량적 수치가 아티클에 명시되지 않음.

Key Takeaway

워크플로우 마찰을 낮추는 것이 행동 변화를 유도하는 핵심이며, 올바른 선택이 쉬워지면 좋은 습관이 자동으로 따라온다. git add .의 편리함이 전체 커밋 품질을 해치는 사례에서, 수동 작업을 피할 수 없다면 검토 비용을 최소화하는 도구 설계가 더 효과적이다.


Git을 자주 사용하되 혼재된 변경사항으로 어려움을 겪는 개발자는 `git status --porcelain + fzf + git diff` 조합으로 선택적 스테이징 프롬프트를 구성하면, 파일 검토 오버헤드를 줄이면서 의도하지 않은 커밋을 방지할 수 있다.

원문 읽기