어제 오늘 내일

[Git] 서버 코드 가져오기: fetch vs pull 완벽 비교 본문

IT/Git

[Git] 서버 코드 가져오기: fetch vs pull 완벽 비교

hi.anna 2026. 2. 9. 08:27

Git을 사용하다 보면 가장 헷갈리는 것 중 하나가 바로 "서버에서 코드를 가져오는" 이 두 명령어의 차이입니다.
 

결론부터 말씀드리면, fetch는 '확인만 하기', pull은 '가져와서 합치기'입니다.

 
 

1. 한 눈에 보는 차이점

명령어 동작 원리 특징
git fetch 원격 저장소의 최신 이력을 로컬로 가져오기만 함 내 소스 코드는 변하지 않음 (안전)
git pull fetch + merge 원격 내용을 가져와서 내 코드에 바로 합침 (편리함)

 

2. 자세히 알아보기

① git fetch (가져오기)

서버에 어떤 변화가 있는지 정보만 업데이트합니다. 실제 내 파일 내용이 바뀌지는 않기 때문에 매우 안전합니다.
"남들이 뭘 고쳤는지 일단 확인하고, 내 코드랑 부딪히지 않는지 먼저 보고 싶을 때" 사용합니다.

  • 실행 후: 원격 브랜치(origin/main)의 위치는 최신으로 이동하지만, 내 브랜치(main)는 그대로 있습니다.
  • 확인 방법: git fetch 후에 git loggit diff를 통해 내 코드와 서버 코드의 차이를 미리 비교해 볼 수 있습니다.

② git pull (가져와서 합치기)

fetch를 실행한 다음, 곧바로 내 현재 브랜치에 merge까지 해버리는 명령어입니다.
"확인할 필요 없이 무조건 서버 내용을 내 코드에 반영하고 싶을 때" 사용합니다.

  • 주의사항: 만약 내가 수정한 내용과 서버 내용이 같은 곳을 건드렸다면 바로 Conflict(충돌)가 발생합니다.

 

3. 실무에서는 어떻게 쓰나요?

가장 권장하는 안전한 흐름:

보통 숙련된 개발자들은 충돌을 방지하기 위해 pull을 바로 쓰기보다 아래 순서를 선호하기도 합니다.

  1. git fetch: 일단 변화를 감지한다.
  2. git log main..origin/main: 서버에 새로 올라온 커밋이 무엇인지 확인한다.
  3. git merge origin/main: 확인 후 문제가 없으면 내 코드에 합친다.

바쁠 때 쓰는 흐름:

그냥 빨리 업데이트하고 작업해야 한다면?

  1. git pull: 일단 합치고, 충돌이 나면 그때 해결한다.

 

4. 실제 예시 상황

상황: 동료가 서버에 새로운 기능을 올렸을 때

  • git fetch를 친 경우:
    • 터미널에 새로운 커밋들이 올라왔다고 뜨지만, 내 소스 코드를 열어보면 아직 동료가 만든 기능이 보이지 않습니다. (직접 합쳐야 함)
  • git pull을 친 경우:
    • 내 소스 코드를 열어보면 동료가 만든 기능이 즉시 반영되어 있습니다.

 

📝 요약

  1. fetch: 원격 저장소의 소식을 업데이트만 함 (검토용).
  2. pull: 소식을 가져와서 내 코드에 덮어씀 (반영용).
  3. 안전성: fetch가 훨씬 안전하며, pull은 편리하지만 충돌 가능성이 있다.

 
 

반응형
Comments