You have divergent branches and need to specify how to reconcile them.

Juyeon Lee·2024년 11월 17일
0

에러

목록 보기
31/31

1. 문제 상황

git pull origin main 명령어를 실행했을 때 다음과 같은 에러 메시지가 발생했습니다:

hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint:   git config pull.rebase false  # merge
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only

2. 원인 분석

이 에러는 로컬 저장소와 원격 저장소의 변경사항이 서로 달라 Git이 어떤 방식으로 병합해야 할지 모르는 상황에서 발생합니다.

3. 해결 방법

Git에서 제시하는 세 가지 해결 방법이 있습니다:

  1. Merge 방식 (병합)
git config pull.rebase false
git pull origin main
  • 로컬 변경사항과 원격 변경사항을 병합하는 새로운 커밋을 생성
  • 히스토리가 다소 복잡해질 수 있음
  1. Rebase 방식 (권장)
git config pull.rebase true
git pull origin main
  • 로컬 변경사항을 임시 저장했다가 원격 변경사항 위에 재배치
  • 깔끔한 히스토리 유지 가능
  1. Fast-forward 방식
git config pull.ff only
git pull origin main
  • 충돌이 없을 때만 pull 허용
  • 가장 안전하지만 제한적인 방식

4. 해결 과정

저는 가장 권장되는 rebase 방식을 선택했습니다:
1. git config pull.rebase true 명령어로 rebase 설정
2. git pull origin main 실행으로 변경사항 적용
3. 정상적으로 pull 완료

5. 추가 팁

  • 모든 저장소에 동일한 설정을 적용하고 싶다면:
git config --global pull.rebase true

💡 결론

rebase 방식을 사용하면 깔끔한 커밋 히스토리를 유지할 수 있어 협업 시 특히 유용합니다.

0개의 댓글