git flow / Branches 'develop' and 'origin/develop' have diverged.

flobeeee·2021년 11월 9일
1

시행착오

목록 보기
22/45
post-custom-banner

이슈 발생

협업하면서 내가 완성한 feature를 git flow feature finish [feature이름] 할 때, 에러가 발생한다.

이슈 원인

로컬과 리모트의 차이가 있기 때문이다.

  1. 내가 develop을 가져옴
  2. 팀원 중 누군가가 feature를 완성해 반영함 (develop이 바뀜)
  3. 내가 feature 완성해 반영함

이 순서로 진행되기 때문에, 나는 로컬에서 예전 develop을 가지고 있는 상황이다.

보통 깃허브나 깃랩의 develop을 가져와서 작업 후,
git flow feature finish [feature이름] 명령어를 입력하면, develop로 합쳐진다.
그리고 git push 를 통해 깃허브, 깃랩의 develop에 반영한다.

즉 로컬의 develop와 리모트의 develop는 다르다는 것을 인식하고 있어야 한다.

해결방법

  1. 내가 develop을 가져옴
  2. 팀원 중 누군가가 feature를 완성해 반영함 (리모트 develop 바뀜)
  3. 내가 feature 완성함 (develop 반영하기 전)
  4. git checkout develop -> git pull (로컬 develop 최신화)
  5. git checkout feature/[feature이름] -> git merge develop (내 feature에 최신 develop 병합)
  6. git push (내 리모트 feature에 반영) -> git flow feature finish [feature이름]
  7. 자동으로 develop 브랜치로 옮겨진다. git push 를 통해 리모트 develop 에 반영하자

명령어만 정리
1. git checkout develop
2. git pull
3. git checkout feature/OOO
4. git merge develop
5. git push
6. git flow feature finish [feature 명]
7. git push

profile
기록하는 백엔드 개발자
post-custom-banner

0개의 댓글