본문 바로가기
codeit sprint backend/weekly paper

[1] Git: git rebase vs git merge | git fetch vs git pull

by boolynn 2026. 1. 12.

✔️ git rebase vs git merge

git rebase와 git merge는 다른 브랜치의 변경사항을 현재 브랜치로 가져올 때 사용한다.

 

둘의 차이는 히스토리 보존 방식에 있다.

git rebase는 한 브랜치의 커밋을 다른 브랜치의 끝으로 옮겨 붙여 마치 하나의 브랜치에서 작업한 것 같은 선형적인 히스토리를 만든다.

git merge는 두 브랜치를 합쳐 새로운 병합 커밋을 만든다.

 

 

이러한 차이를 고려해봤을 때 각각의 장단점은 다음과 같다.

  • git rebase
    • 단순한 히스토리
    • 충돌 해소를 하는 과정이 복잡해질 수 있음
  • git merge 
    • 브랜치를 유지해 안전성이 보장됨
    • 히스토리가 복잡해질 수 있음

 

이를 통해 생각해볼 수 있는 적절한 사용 상황이다.

  • git rebase
    • 개인 작업: 충돌 걱정 없이 커밋 히스토리를 정리 가능
    • 메인 브랜치 병합: 지저분한 커밋들을 정리할 수 있음
  • git merge 
    • 협업 도중: 병합 이력을 명확히 남길 수 있음
    • 공용 브랜치 병합: 기록 보존 가능

 


✔️ git fetch vs git pull

git fetch와 git pull은 원격 저장소에서 로컬 저장소로 변경 내역을 가져올 때 사용된다.

 

둘의 차이는 병합 여부에 있다.

git fetch는 원격 저장소의 변경사항을 가져오기만 하고 병합을 하지 않는다.

git pull은 원격 저장소의 변경사항을 가져와 자동으로 병합한다.

간단히 말해 git fetch + git merge => git pull 이다.

 

 

이러한 차이를 고려해봤을 때 각각의 장단점은 다음과 같다.

  • git fetch
    • 충돌 발생 없음(안전성 보장)
    • 병합을 수동으로 처리해야 하는 번거로움이 있음
  • git pull
    • 변경사항과 병합 단계가 자동 수행되는 편리함
    • 병합 과정에서 동일한 파일을 수정한 경우 충돌이 발생할 수 있어 안정성이 떨어짐

 

이를 통해 생각해볼 수 있는 적절한 사용 상황이다.

  • git fetch
    • 코드 리뷰: 변경사항을 미리 보고 확인할 때 유용함
    • 협업 도중: 동일한 파일을 동료와 수정할 가능성이 있을 경우, 충돌을 피하기 위해 변경사항을 먼저 확인하는 것이 좋음
  • git pull
    • 개인 작업: 충돌을 걱정할 필요가 없음
    • 협업 시작: 함께 작업을 시작하기 전 기존의 최신화된 작업물을 불러올 때 사용하면 편리함