Git pull vs Git fetch

aksen5240·2024년 1월 13일

Git

목록 보기
6/6
post-thumbnail

📚 Git pull vs Git fetch

Git 명령어에 대해 공부하던 중 Git pull과 Git fetch의 개념이 헷갈리고, 언제 어떤 명령어를 사용해야 할지도 헷갈리는 경험을 하게 되었다.

이에, 이번 글을 통해 git pull과 git fetch의 개념에 대해 상황적 이해와 함께 살펴보며, 어떤 시나리오에 git pull 혹은 git fetch를 쓰면 좋을지까지 학습해보고자 한다.


Git pull vs Git fetch

📌 Git pull

git pull 커맨드를 사용하면 리모트 레포지토리의 내용을 로컬 레포지토리로 가져올 수 있다. 이 때, git pull을 할 때 유의해야 하는 몇 가지 상황들이 있다.

대표적인 예로, 개발자 A,B가 리모트 레포지토리를 가져와서 각각 새로운 커밋을 했다고 가정해보자. 이 때 개발자 B가 먼저 git push를 하고 나면 개발자 A는 바로 git push를 할 수 없다. Git에서는 로컬 레포지토리를 수정하는동안 리모트 레포지토리에 변화가 생기면 바로 git push를 할 수 없기 때문이다.

이때, 개발자 A는 git pull을 이용해서 리모트 레포지토리의 그 branch에 있는 다른 개발자가 한 커밋을 자신의 로컬 레포지토리에 있는 branch에도 반영시켜야 한다. 이 과정은 결국 리모트 레포지토리의 branch를 가져와서 내 로컬 레포지토리에 merge하는 것과 같다.

따라서, 이러한 상황에서 git pull이 바로 성공하는 경우도 있지만, 대부분의 경우에는 conflict가 나는 것이다. conflict를 해결하는 방법에 대해서는 이전 글을 통해 확인 가능하다.

따라서, git pull을 할 때는 이러한 상황적 이해와 conflict를 반드시 유의해야 한다.

정리해보자면, git pull은 리모트 레포지토리에 있는 branch를 가져와서 현재 branch에 자동으로 merge하는 커밋이다.

📌 Git Fetch

git pull을 하면 리모트 레포지토리에 있는 branch를 가져와서 현재 branch에 자동으로 merge한다고 하였다. 그런데 이 때, 리모트 레포지토리에 있는 branch를 merge하지 않고, 딱 가져오는 단계까지만 하고 싶은 경우도 있을 것이다.

이 때 사용하는 커멘드가 바로 git fetch이다. git fetch를 사용하면 가져오기만 하고 자동으로 merge되지는 않는다. 이러한 특성 때문에, git fetch는 리모트 레포지토리에 있는 브랜치의 내용을 일단 가져와서 살펴본 후 merge하고 싶을 때 자주 사용된다.

정리해보자면, git fetch는 리모트 레포지토리에서 가져온 브랜치의 내용을 merge하기 전에 점검해야할 필요가 있을 때 사용하거나, 리모트 레포지토리에 있는 브랜치의 내용과 내가 작성한 코드를 비교해서 잘못된 부분이 없는지 검토해야 할 때 사용한다.

📌 Git pull vs Git fetch

위의 내용을 바탕으로 Git pull과 Git fetch를 언제 사용하면 좋을지에 대해 한줄로 정리해보자면,

  • Git pull: 리모트 레포지토리의 브랜치를 검토할 필요없이 바로 합치고 싶을 때 사용
  • Git fecth : 리모트 레포지토리의 브랜치를 검토해야 할 때 사용

Outro

이번 글을 통해 git pull과 git fetch의 차이점과 각각의 사용 시나리오에 대해 살펴보았다.

이번 글을 적으며 두 명령어에 대한 개념을 확실히 적립할 수 있었고, 이를 통해 각 명령어가 어떤 상황에서 적절한지를 이해함으로써, 협업 과정에서 더 효율적이고 정확하게 코드를 관리할 수 있게 될 것이라는 자신감을 얻을 수 있었다.

앞으로도 정확한 개념 정립을 통해 효율적인 코드 관리 능력을 기르고, 자신감을 계속해서 높여나가보자.

profile
Tags of Taeryong's Study🌱

0개의 댓글