git명령어를 사용하다가 git pull과 git fetch간의 차이점에 대해 궁금증이 생겨 간단히 정리해보았다👀
원격 저장소에 있는 정보들을 로컬 저장소로 가져오면서 자동으로 병합(merge)까지 해주는 명령어이다. fetch와는 다르게 로컬 디렉토리에 변경내용을 병합한다.
원격 저장소에 있는 변경사항들을 로컬 저장소로 가져오기 전에 변경내용만 확인하고 싶을 때 사용하는 명령어이다. 자동으로 병합을 해주지 않기때문에 확인 후 직접 병합하는 과정을 거쳐야한다.
pull과 fetch모두 원격 저장소에 있는 내용을 가져오는데 쓰이는 명령어이다.
fetch는 변경내용만 확인하므로 로컬에 영향을 끼치지 않으며 병합하기 전에 확인하는 용도로 사용하는 것이 좋다. 이에 비해서 pull은 가져온 변경내용을 로컬에 병합한다.
하지만 pull을 이용해서 원격저장소의 커밋을 가져오게 되면 자동으로 병합되기 때문에 어떠한 내용이 병합되면서 바뀌는지 알기 어렵고, 로컬에서 작업하다가 변경된 내용을 pull할 경우 충돌이 일어날 수 있다. 그래서 fetch와 pull을 적절하게 병행 사용하는게 좋다.