로컬에서 아무리 커밋을 많이 만들어도 원격 저장소(GitHub)에 올리지 않으면 팀원들은 내 작업 내용을 알 수 없습니다. 이 문서는 프롬프트 상의 브랜치 표시(branch-name) $를 명시하여 원격과 로컬을 동기화하는 실무 사이클을 설명합니다.
1. 왜 첫 푸시에는 -u (upstream) 옵션을 붙일까?
# 최초 1회: 로컬 브랜치와 원격 브랜치를 연결하며 푸시
(feature/login) $ git push -u origin feature/login
Branch 'feature/login' set up to track remote branch 'feature/login' from 'origin'.
# 이후부터는 브랜치 이름을 생략하고 간단히 push만 입력 가능
(feature/login) $ git push2. 시니어들은 왜 무작정 pull 대신 fetch를 먼저 칠까?
# 1. develop 브랜치에서 원격 최신 변경사항 메타데이터만 우선 가져오기 (코드 변경 없음)
(develop) $ git fetch origin
# 2. 동료들이 올린 커밋이 무엇인지 미리 확인하기
(develop) $ git log HEAD..origin/develop --oneline
# 3. 안전함을 확인한 후 내 로컬 브랜치에 병합하기
(develop) $ git merge origin/develop3. 실무 시나리오: 재택근무와 회사 PC 작업 동기화
퇴근 전 (회사 PC)
(feature/payment) $ git status
(feature/payment) $ git add .
(feature/payment) $ git commit -m "wip: 결제 모듈 연동 진행 중"
(feature/payment) $ git push origin feature/payment도착 후 (집 PC)
# 작업 브랜치가 로컬에 이미 있는 경우
(feature/payment) $ git pull origin feature/payment
# 집 PC에서 해당 브랜치를 처음 내려받는 경우
(main) $ git fetch origin
(main) $ git switch feature/payment
Switched to a new branch 'feature/payment'
(feature/payment) $