[Git] fetch vs. pull
fetch
- 리모트 레포지토리에서 변경사항을 로컬의 remote-tracking branch로 가져오는 작업
- remote-tracking branch: 원격 브랜치의 최신 상태를 로컬에 기록해두는 읽기 전용 브랜치
git diff main origin/main명령어로 로컬 브랜치와 원격 브랜치 간 차이 확인 가능- merge를 통해 현재 로컬 브랜치의 최신 커밋 기준으로 변경사항 반영
- 로컬 브랜치에서 커밋되지 않은 변경사항이 있는 경우
- 충돌 없음
- 브랜치가 병합되고 변경사항 유지
- 충돌 발생
- 커밋 후 merge를 통해 충돌 해결
stash를 활용하여 변경사항 임시 저장 후 merge후 변경사항 적용
- 충돌 없음
- 변경 사항을 확인하고 merge하고 싶은 경우에 사용
pull
- fetch + merge(or rebase)
- remote-tracking branch의 변경사항을 즉시 로컬 브랜치에 반영
- 변경사항을 신뢰할 수 있고 즉시 통합하고자 할 때 사용
Leave a comment