Need to specify how to reconcile divergent branches.에러와 마주쳤다.
리모트 저장소에서 파일이 변경되고, 원격 저장소에 있던 파일도 동시에 변경된 상황에서 conflict가 많이 생길 것을 예상 했는데, 에러 한 줄이라니 다행인가!
에러를 해석해보자면 pull 시 사용할 merge의 방식을 정하라는 것 같다.
다만 이렇게 작동할 때는 불필요한 커밋이 생성되는데 이것이 Merge remote-tracking branch 'refs/remotes/origin/main'이라는 커밋이다.
나의 경우에는 처음에 git pull을 수행함으로 fetch가 끝난 상태여서 git merge 후 push를 바로 했더니 로컬의 커밋이 리모트의 새로운 커밋과 병합되어 커밋이 잘 됐다.
이를 통해 나의 경우에는 로컬에서의 커밋이 존재, 리모트에서의 커밋도 존재하는 fast-forward가 아닌 상황이었다는 것을 알 수 있다.
즉 내가 처음 pull 받은 시점의 remote-tracking branch에서 양갈래로 갈라져 remote에도 커밋 하나, 로컬에도 커밋 하나가 Y자 모양으로 생긴 것.
이를 어떤 방식으로 해결할 것인지를 정하라고 하는 말이었고 나는 기본 merge 명령어를 통해 정해 에러를 해결했다.
fast-forward: 원격 저장소에 변경사항이 존재하고 로컬에 존재하지 않거나, 로컬에만 커밋이 존재하는 경우
Remote-tracking branch: 리모트 저장소에 마지막으로 연결 시 어떤 커밋을 가리켰는지를 나타내는 북마크
git pull: fetch 후 merge를 수행하는 것
git fetch: 원격 저장소의 커밋을 로컬 저장소로 가지고 오는 것.
git merge: 원격 저장소에서 fetch로 가져온 커밋을 로컬 저장소와 병합하는 것
https://devlog-wjdrbs96.tistory.com/236
rebase: 새 브랜치의 시작점을 기준 브랜치(합치고 싶은 브랜치)에 가장 최근 커밋으로 합치는 것
https://velog.io/@eunddodi/git-pull-%EC%8B%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-warning-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0Need-to-specify-how-to-reconcile-divergent-branches