본문 바로가기
기타

git pull error (fatal: Need to specify how to reconcile divergent branches.)

2022. 4. 6.

 

힌트: You have divergent branches and need to specify how to reconcile them.
힌트: You can do so by running one of the following commands sometime before
힌트: your next pull:
힌트: 
힌트:   git config pull.rebase false  # merge (the default strategy)
힌트:   git config pull.rebase true   # rebase
힌트:   git config pull.ff only       # fast-forward only
힌트: 
힌트: You can replace "git config" with "git config --global" to set a default
힌트: preference for all repositories. You can also pass --rebase, --no-rebase,
힌트: or --ff-only on the command line to override the configured default per
힌트: invocation.
fatal: Need to specify how to reconcile divergent branches.

local master branch 에도 커밋이 있고, origin master branch에서도 커밋이 있다보니 pull 가져올 때 이 둘을 어떻게 합칠 지를 정하고 pull 을 해달라는 뜻 같다.

다음과 같은 3가지 방법이 제시됐다.

  1. git config pull.rebase false (merge)
  2. git config pull.rebase true (rebase)
  3. git config pull.ff only (fast-forward only)

기본 설정을 3가지 중에 하나로 해달라는 것 같은데... 

git config pull.ff only 명령어로 fast-forward 로 설정하면, 

fast-forward 관계가 아닌 것들에 대해 다음과 같은 에러 메세지가 뜨기 때문에 fast-forward 가 아니라 merge 를 해줄 수 있는

git config pull.rebase false 

이 명령어로 설정을 바꿔주었다.

git config --unset pull.ff

단, 그 전에 미리 설정해두었던 fast-forward 설정을 해제해주고 적용시켜주었다.

 

설정을 완료하고 나서 git pull 하니 merge 메세지를 입력하라고 나오고 잘 merge 되었다.

다음과 같이 내 commit 이 중간에 잘 들어갔고,

origin/master 에 있던 commit 들도 잘 들어왔다.

현재는 merge 에 대한 commit 이 생겨있으므로, origin/master 보다 이것 하나만 앞서있는 상태이다.

 

댓글