GitHub fetch은(는) 무엇을 하나요?
fetch 실행은 모든 GitHub 작업에서 동일한 프로세스를 따릅니다: 파싱 → 예측 → fetch 또는 checkout.
단계
1. 파싱
URL 또는 사용자 텍스트에서 owner/repo (+ 이슈/PR 번호가 있으면 포함)를 추출합니다.
완료 기준: owner/repo가 식별됨 (또는 사용자에게 명확히 요청함).
2. 예측
checkout 전에, 이 작업이 둘 이상의 파일 읽기나 저장소 전체 검색(Grep/Glob)을 필요로 하는지 결정합니다.
- 아니오 → fetch 브랜치 (3단계).
- 예 → checkout 브랜치 (4단계).
- 작업이 실행 중에 확장되면 → 두 번째 접근 전에 다시 예측; 필요에 따라 브랜치를 전환합니다.
완료 기준: 브랜치가 선택되고 기록됨 (fetch vs checkout).
3. Fetch 브랜치
URL 유형에 따라 GH-COMMANDS.md를 따릅니다. 단일 파일: gh api repos/owner/repo/contents/path?ref=branch.
완료 기준: 요청된 콘텐츠가 gh를 통해 반환됨; checkout이 시작되지 않음.
4. Checkout 브랜치
CHECKOUT.md를 따릅니다 — 로컬 경로를 묻고, 원격을 확인하며, 승인 시에만 클론합니다.
완료 기준: 확인된 로컬 경로가 사용 중이거나, 승인된 얕은 클론이 알려진 절대 경로에 있음; 해당 트리를 대상으로 Read/Grep/Glob 실행.
접근
gh (fetch 브랜치) 또는 확인된 checkout 경로를 통해 GitHub에 접근합니다. gh가 없거나 인증되지 않은 경우, WebFetch가 폴백입니다.
완료 조건: 모든 접근이 예측 게이트에 따라 fetch 또는 checkout을 통해 이루어짐; WebFetch는 진정한 gh 실패 시에만 사용됨.