반응형
git 설치 후 여러 개발자가 사용하다 보면 발생하는 Need to specify how to reconcile divergent branches 이야기하려고 합니다.
Need to specify how to reconcile divergent branches 발생
- git을 사용한다면 여러 개발자가 같은 git 서버를 사용하는데 최신을 받지 않은 상태에서 다른 개발자가 push 한 경우 발생합니다.
- 그림으로 설명하면 바로 이해할 수 있습니다.
Need to specify how to reconcile divergent branches 원인은?
- 원인은 local과 remote의 파일 싱크가 되지 않아 브랜치가 갈라졌다는 경고입니다.
- 즉, Git 프로그램에 싱크가 맞지 않는 파일에 대해서 Merge 할 건지, rebase 할 건지 결정을 해줘야 합니다.
- 결론적으로 설정을 하지 않았다는 설명입니다.
aurumguide@ubuntu:~/github$ git pull
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
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
Need to specify how to reconcile divergent branches 해결 방법
Rebase 방식으로 에러 해결하기.
- 병합 커밋 없이 일렬로 커밋을 순서대로 적용합니다.
- 충돌이 발생하면 충돌 해결 후 rebase를 계속합니다.
- Merge 이력이 발생하지 않는다.
명령어로 해결 방법.
aurumguide@ubuntu:~/github$ git pull --rebase
Successfully rebased and updated refs/heads/main.
config 설정 방법.
aurumguide@ubuntu:~/github$ git config --global pull.rebase true // 전역으로 설정할 경우
aurumguide@ubuntu:~/github$ git config pull.rebase true // 현재 폴더 기준으로 설정
aurumguide@ubuntu:~/github$ git pull
Successfully rebased and updated refs/heads/main.
Merge 방식으로 에러 해결하기.
- 자동으로 merge commit이 생성되어야 합니다.
- 충돌이 발생하면 충돌 merge 할 수 있는 화면이 나오고 merge 후 commit 할 수 있습니다.
- 결론적으로 Merge 이력을 남길 수 있습니다.
config 설정 방법.
aurumguide@ubuntu:~/github$git config --global pull.rebase false // 전역으로 설정할 경우
aurumguide@ubuntu:~/github$git config pull.rebase false // 현재 폴더 기준으로 설정
aurumguide@ubuntu:~/github$ git pull
Successfully rebased and updated refs/heads/main.
Merge 발생했을 때 처리 방법
1. git Merge 충돌 발생.
2. git 충돌 소스 중에서 필요한 부분을 선택합니다.
3. Merge 후 Complete Merge을 클릭합니다.
4. Merge 한 내용을 Commit 합니다.
반응형