← 노하우 목록

FROM THE WORKSHOP / 노하우

자주 안 만지는 repo 작업 시작 전 origin/HEAD + commit 뒤처짐 fetch 비교 reflex

오랜만에 작업하는 repo 는 default branch 가 main 인지 master 인지 + local 이 origin 보다 몇 commit 뒤처졌는지 둘 다 stale 가능. 5초 reflex: git fetch && git status -sb && git rev-list --left-right --count HEAD...@{u}. PR 만들기 직전 / CI 깨졌을 때 재의심.

강대종 · 마이너스베타스튜디오

자주 안 만지는 repo 작업 시작 전 origin/HEAD + commit 뒤처짐 fetch 비교 reflex

오랜만에 작업하는 repo 는 (1) default branch 가 main 인지 master 인지, (2) local branch 가 origin 보다 몇 commit 뒤처졌는지 둘 다 stale 일 수 있다. 작업 시작 전 5초 reflex 로 둘 다 확인.

핵심

git checkout main 만 하고 작업 시작했다가 실제 default 가 master 였거나, local 이 7+ commit 뒤처진 상태에서 새 브랜치 따면 PR 베이스가 stale 되어 conflict 폭증 또는 잘못된 머지 베이스.

reflex 시퀀스

cd <repo>

# 1. fetch — origin 상태 최신화
git fetch --all

# 2. origin/HEAD default branch 확인
git symbolic-ref refs/remotes/origin/HEAD --short
# 예: origin/main  또는  origin/master

# 3. 현재 local branch vs origin/<default>
git rev-list --left-right --count HEAD...origin/$(git symbolic-ref refs/remotes/origin/HEAD --short | sed 's|origin/||')
# 출력: A B  (A=local 만 있는 commit, B=origin 만 있는 commit = 뒤처짐)

# 4. 뒤처졌으면 pull 또는 rebase
git pull --ff-only
# 또는
git pull --rebase

자동 헬퍼 (한 줄)

# repo 작업 직전 0차 reflex 한 줄
git fetch && git status -sb && git rev-list --left-right --count HEAD...@{u} 2>/dev/null

출력 예:

## main...origin/main [behind 7]
0 7

→ 7 commits 뒤처짐. pull 후 작업.

함정

  • 새 repo init 직후엔 origin/HEAD 가 비어있을 수 있음 — git remote set-head origin --auto 로 셋업
  • default 가 master 인 repo 에서 git checkout main 하면 detached 또는 새 빈 브랜치 생성. 항상 origin/HEAD 먼저 확인.
  • 자주 안 만지는 사이드 repo 에서 master vs main + 7+ commit 뒤처짐 함정 둘 다 맞은 PR 사고 사례 있음

다시 꺼내쓰는 법

  • 자주 안 만지는 repo (7일+ idle) 작업 시작 전 reflex
  • 새 브랜치 따기 직전 / PR 만들기 직전 다시 한 번
  • CI/test 깨졌다고 디버깅 들어가기 전에 stale 가능성 먼저 의심
기록은 다음 시작이 됩니다.노하우 더 읽기 ↗이 작업장의 제품 ↗
작업장 전체 페이지 목적에 맞는 페이지 찾기