티스토리 뷰

Git에서 원격저장소에 있는 내용을 지역저장소로 가져올 때 두가지 방법을 사용 할 수 있습니다.

하나는 Pull 이고 다른 하나는 fetch인데요. 두 가지 개념을 간단히 설명하면 이렇습니다 ㅎㅎ

 

  • pull - 원격저장소로 부터 내용을 가지고 온 후 병합 
  • fetch - 원격저장소로 부터 내용을 가지고 온 후 병합X 

두 가지 모두 원격저장소로부터 내용을 가지고 온다는 점에서 기능이 유사하지만, 한가지 차이점이 있습니다.

바로 병합을 하느냐 안하느냐의 차이인데요. 당연히 이러한 기능적 차이를 둔 이유가 있겠죠?

 

보통은 pull을 많이 사용하기에, 왜 기능이 겹치는 fetch라는 기능이 있는지에 대해 설명드리겠습니다.

pull을 쓰면 바로 병합을 같이 해버리지만, 만약 fetch를 사용하면 병합을 수동으로 해줘야 하죠?

이렇게 함으로써 저희는 병합 전, 원격저장소와 로컬저장소의 코드의 차이점을 비교한 후 문제가 있는지 없는지 체크 해 볼 수 있게 됩니다. 즉, 무턱대고 병합하지 않겠다는 얘기죠.

 

실제로 각각 pull과 fetch를 해본 후 git log --decorate --all 명령어를 통해 확인을 해보면, 

pull을 했을때는, master(로컬저장소)와 origin/master(원격저장소)가 같은 커밋을 가리키는것을 볼 수 있고

fetch를 했을때는, origin/master(원격저장소)가 master(로컬저장소)보다 커밋이 앞서 있는 것 을 볼 수 있습니다. 왜냐면 아직 로컬저장소에 머지를 하지 않은 상태이기 때문이죠.

한번 직접 해보시면서 차이점을 두 눈으로 확인해보시길 바랍니다 ㅎㅎ! 

댓글
링크
최근에 올라온 글
최근에 달린 댓글