본문 바로가기
Developer/Troubleshooting

Need to specify how to reconcile divergent branches

by 아우럼 2024. 8. 29.
반응형

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
Need to specify how to reconcile divergent branches.

 

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 충돌 발생.

git Merge 충돌 발생.
git Merge 충돌 발생.


2. git 충돌 소스 중에서 필요한 부분을 선택합니다.

git 충돌 소스 중에서 필요한 부분을 선택합니다.
git 충돌 소스 중에서 필요한 부분을 선택합니다.


3. Merge 후 Complete Merge을 클릭합니다.

Merge 후 Complete Merge
Merge 후 Complete Merge


4. Merge 한 내용을 Commit 합니다.

Merge 한 내용을 Commit.
Merge 한 내용을 Commit.

 

반응형