ETC

[ETC 3편] git pull conflict 해결방안

무대포 개발자 2023. 1. 12. 23:02
728x90
반응형

목차는 ETC 목차 에 있습니다.

[ETC 3편] git pull conflict 해결방안

git pull conflict 상황

  • main, develop, feature branch 가 있다고 가정하겠습니다.

  • develop branch 는 main(=master) branch 를 기준으로 만들었습니다.

  • feature branch 는 develop branch 를 기준으로 만들었습니다.

  • feature branch 에서 작업하고, develop branch pull request 를 날릴려고 하는데 develop 에 이미 작업한 것이 있어 pull request 안됩니다.

  • 그럴 때는 develop branch 를 pull 해와야 합니다.

  • pull 할 때, 아래와 같은 에러가 발생할 수 있습니다.

  • pull 전략이 fast-forward 전략으로 돼있기 때문입니다. (=develop 에 새로 반영된 소스 들이 전부 ahead 에 위치해있어야 함)

    • git config pull.ff only (fast-forward 전략 설정)
 * branch            master     -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
Completed with errors, see above

해결방안

  • pull 을 해서 충돌이 나도록합니다. 충돌난 부분을 해결합니다.
  • git config --unset --global pull.ff (fast-forward 전략 설정)
  • git pull --no-ff origin master (pull 할 때, fast-forward 옵션 X
  • 위와 같이 옵션을 줘서 fast-forward 옵션을 제거한 후, git pull origin develop 명령어를 통해 develop branch 를 pull 해오면 충돌이 나고, 충돌을 해결한 후, push 합니다.
  • 그런 후, pull request 를 feature --> develop 수행하면 내가 작업한 변경된 소스만 pull request 대상이 됩니다.