✔️ 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
- 개인 작업: 충돌을 걱정할 필요가 없음
- 협업 시작: 함께 작업을 시작하기 전 기존의 최신화된 작업물을 불러올 때 사용하면 편리함
'codeit sprint backend > weekly paper' 카테고리의 다른 글
| [4] Spring (0) | 2026.02.09 |
|---|---|
| [3-2] 알고리즘과 자료구조: 시간 복잡도 (0) | 2026.01.26 |
| [3-1] 알고리즘과 자료구조: HashSet (0) | 2026.01.26 |
| [2-2] Java 고급과정: map vs flatMap (0) | 2026.01.22 |
| [2-1] Java 고급과정: 단일 책임 원칙(SRP)과 개방-폐쇄 원칙(OCP) (0) | 2026.01.19 |