기본 패턴
text
git switch -c feature/login --track origin/feature/login
git branch -vv
git push -u origin feature/login설명
origin/main같은 이름은 실제 원격 저장소에 붙어 있는 브랜치 그 자체가 아니라, 로컬이 마지막으로 알고 있는 원격 상태를 가리키는 remote tracking branch입니다. 즉 "원격 브랜치의 로컬 사본 같은 기준점"이라고 이해하면 쉽습니다.- upstream은 내 현재 브랜치가 기본적으로 비교하고 push/pull할 상대 브랜치를 뜻합니다. 이 연결이 잡혀 있어야
git pull,git push를 짧게 쓸 때 Git이 어디와 동기화할지 알 수 있습니다. git branch -vv를 보면 각 브랜치가 어떤 upstream을 따라가는지와, 원격과 몇 커밋 차이 나는지를 함께 볼 수 있습니다. 협업이 복잡해질수록 이 정보가 아주 중요해집니다.- 이 주제의 핵심은 "로컬 브랜치", "remote tracking branch", "실제 원격 브랜치"를 머릿속에서 구분하는 것입니다. 이 셋을 섞어 생각하면 fetch, pull, push 동작이 자주 헷갈립니다.
- 좋은 습관은 새 작업 브랜치를 push할 때
-u로 upstream을 바로 설정하는 것입니다. 그러면 이후 명령이 짧아지고, 협업 흐름도 더 예측 가능해집니다.
빠른 정리
| 개념 | 의미 |
|---|---|
| 로컬 브랜치 | 현재 내 작업 브랜치 |
| remote tracking branch | 로컬이 기억하는 원격 상태 |
| upstream | 내 브랜치가 기본으로 따라갈 상대 |
git branch -vv | upstream 연결과 차이 확인 |
git push -u | 첫 push와 upstream 설정 함께 수행 |
주의할 점
origin/main을 보고 있다고 해서 원격 저장소를 실시간으로 보고 있는 것은 아닙니다. fetch 전에는
remote tracking branch도 오래된 정보일 수 있으니, 최신 상태 확인 전제는 git fetch입니다.
참고 링크
2 sources