반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- math
- 정규식
- 자바문법
- CSS
- html
- 인텔리제이
- Visual Studio Code
- Java
- string
- junit
- 자바
- json
- list
- Eclipse
- 문자열
- 자바스크립트
- junit5
- Array
- IntelliJ
- js
- HashMap
- ArrayList
- 이클립스
- 배열
- java테스트
- input
- 테스트자동화
- javascript
- 단위테스트
- vscode
Archives
- Today
- Total
어제 오늘 내일
[Git] 서버 코드 가져오기: fetch vs pull 완벽 비교 본문
Git을 사용하다 보면 가장 헷갈리는 것 중 하나가 바로 "서버에서 코드를 가져오는" 이 두 명령어의 차이입니다.
결론부터 말씀드리면, fetch는 '확인만 하기', pull은 '가져와서 합치기'입니다.
1. 한 눈에 보는 차이점
| 명령어 | 동작 원리 | 특징 |
git fetch |
원격 저장소의 최신 이력을 로컬로 가져오기만 함 | 내 소스 코드는 변하지 않음 (안전) |
git pull |
fetch + merge |
원격 내용을 가져와서 내 코드에 바로 합침 (편리함) |
2. 자세히 알아보기
① git fetch (가져오기)
서버에 어떤 변화가 있는지 정보만 업데이트합니다. 실제 내 파일 내용이 바뀌지는 않기 때문에 매우 안전합니다.
"남들이 뭘 고쳤는지 일단 확인하고, 내 코드랑 부딪히지 않는지 먼저 보고 싶을 때" 사용합니다.
- 실행 후: 원격 브랜치(
origin/main)의 위치는 최신으로 이동하지만, 내 브랜치(main)는 그대로 있습니다. - 확인 방법:
git fetch후에git log나git diff를 통해 내 코드와 서버 코드의 차이를 미리 비교해 볼 수 있습니다.
② git pull (가져와서 합치기)
fetch를 실행한 다음, 곧바로 내 현재 브랜치에 merge까지 해버리는 명령어입니다.
"확인할 필요 없이 무조건 서버 내용을 내 코드에 반영하고 싶을 때" 사용합니다.
- 주의사항: 만약 내가 수정한 내용과 서버 내용이 같은 곳을 건드렸다면 바로 Conflict(충돌)가 발생합니다.
3. 실무에서는 어떻게 쓰나요?
가장 권장하는 안전한 흐름:
보통 숙련된 개발자들은 충돌을 방지하기 위해 pull을 바로 쓰기보다 아래 순서를 선호하기도 합니다.
git fetch: 일단 변화를 감지한다.git log main..origin/main: 서버에 새로 올라온 커밋이 무엇인지 확인한다.git merge origin/main: 확인 후 문제가 없으면 내 코드에 합친다.
바쁠 때 쓰는 흐름:
그냥 빨리 업데이트하고 작업해야 한다면?
git pull: 일단 합치고, 충돌이 나면 그때 해결한다.
4. 실제 예시 상황
상황: 동료가 서버에 새로운 기능을 올렸을 때
git fetch를 친 경우:- 터미널에 새로운 커밋들이 올라왔다고 뜨지만, 내 소스 코드를 열어보면 아직 동료가 만든 기능이 보이지 않습니다. (직접 합쳐야 함)
git pull을 친 경우:- 내 소스 코드를 열어보면 동료가 만든 기능이 즉시 반영되어 있습니다.
📝 요약
fetch: 원격 저장소의 소식을 업데이트만 함 (검토용).pull: 소식을 가져와서 내 코드에 덮어씀 (반영용).- 안전성:
fetch가 훨씬 안전하며,pull은 편리하지만 충돌 가능성이 있다.
반응형
'IT > Git' 카테고리의 다른 글
| [Git] 실수로 올린 파일 내리기: git add 취소하기 (Unstage) (0) | 2026.02.08 |
|---|---|
| [Git] 브랜치 이름 변경하기 (로컬 & 원격 저장소) (0) | 2026.02.07 |
| [Git] 지저분한 파일들 한 방에 정리! git clean으로 저장소 청소하기 (0) | 2026.02.07 |
| [Git] 커밋 전 필수 루틴! git diff로 변경 내용 정밀 검사하 (0) | 2026.02.06 |
| [Git] "이 코드 도대체 누가 짰어?" git blame으로 코드의 역사 추적하기 (0) | 2026.02.06 |
Comments
