본문 바로가기
개발툴

Git Fetch와 Merge 비교

by 탁구치는 개발자 2014. 1. 29.

Git을 이용하여 개발을 하였을 경우 원격 저장소의 소스를 내 로컬 저장소에 merge하기 위해서는 pull을 받게 된다.

pull을 하게 되면 원격 저장소의 소스를 로컬 저장소로 가져온 후, Merge 작업을 자동으로 수행한다.

여기서 원격 저장소의 소스를 로컬 저장소로 가져오는 작업을 Fetch라고 한다.

즉, pull을 하게 되면 fetch를 한 후 merge 작업까지 자동으로 실행해 주는 것이다.


그럼 pull을 받았을 때 충돌이 발생하면 어떻게 해야 하는 걸까?

이런 경우는 우선 fetch를 받은 후 개발자가 수동으로 merge 작업을 진행해 줘야 한다.


이클립스 EGit을 사용할 때 한 가지 알아야 할 것이 있는데 Egit 플러그인에서는 synchronize workspace 실행 전 fetch를 자동적으로 받을 수 있는 옵션을 제공하고 있다.

Window > Preference > Team > Git > Synchronize 메뉴로 이동하면 다음의 옵션에 체크가 되어 있는 것을 알 수 있다. Synchronize 받기 전에 원격 저장소에서 로컬 저장소로 항상 fetch를 실행하겠다는 의미이다.

Always launch fetch before synchronization <- default로 체크되어 있음


EGit을 이용하여 synchronize를 진행했을 때 보이지 않는 곳에서 fetch를 진행하고 있다는 것을 알고 있으면 도움이 될 것 같아 정리한다.