[Git] GitHub Repository - Pull, Fetch

안정우·2024년 1월 12일
0

Git

목록 보기
3/3

GitHub

Git은 개발자들 사이에서 개인 혹은 팀 간의 프로젝트를 관리하는 데 가장 널리 사용되고 있는 툴이다. 이 Git 프로그램을 활용하면 프로젝트 기록을 스스로 관리하며 프로젝트 생성 및 복구, 삭제, 병합 등을 할 수 있는데, 이때 이 Git 시스템을 통해 관리하는 프로젝트들을 올려둘 수 있는 호스팅 서비스 중 하나이자, 가장 대표적인 서비스가 바로 GitHub이다.



Remote & Local repository

Git 저장소(Repository)는 Git이 버전 관리를 하고 있는 폴더를 의미한다. Git Repository에는 파일이 변경이력에 따라 구분되어 저장되며, 위치에 따라 Github 서버와 같은 원격 저장소(Remote Repository)와 개인 pc의 로컬 저장소(Local Repository)로 구분된다.
이에, 사용자는 1) Workspace에서 작성된 파일을 원격 저장소에 올리고, 2) 반대로 다른 사용자에 의해 수정된 파일을 원격 저장소에서 Workspace로 받아올 수 있다.

지난 포스팅인 Push는, 1) 에 해당된다. 이번 Pull은 반대의 경우인 2) 에 해당하는 내용이 되겠다.



Push & Pull ?

편의상 로컬 머신에 존재하는 모든 Repository는 Local이고 GitHub에 존재하는 모든 Repository는 Remote라고 해보자.

우선 로컬에 Repository를 만드는 방법은 크게 두 가지가 있다.

  1. 로컬에서 git init으로 새로운 Git Repository 생성
  2. 깃허브에서 새로운 Repository를 만든 후 git clone해서 가져오기

이렇게 만든 Local과 Remote는 모두 그 자체로 완전한 버전 관리 시스템이다. 그래서 Local과 Remote의 작업 내용을 서로 반영하기 위해 Push와 Pull이라는 작업을 하게 된다.

따라서,

push는 Local -> Remote로 Commit 이력을 업로드하는 것이고,
pull은 Remote -> Local로 Commit 이력을 다운로드하는 것이다.



Remote repository에서 변경 내용 가져오기


Fetch, Pull, Clone

  1. fetch
    Remote repository에 있는 프로젝트의 변경 사항을 가져오기만 하는 것.

    다른 사람이 수정한 부분을 확인한 뒤에 merge(병합)할 수 있다는 장점이 있다.
  1. pull
    Remote repository에 있는 프로젝트의 변경 사항을 가져와 자동으로 merge(병합)까지 하는 것.

    변경 사항을 가져옴과 동시에 자동으로 병합까지 되기 때문에 무엇이 추가되었는지 확인이 힘들고, 충돌 문제가 일어나기 쉽다.

    👉 pull = fetch + merge
  1. clone
    Remote repository에 있는 내용을 새로운 폴더에 그대로 복사하는 것.

Pull or Fetch?

pullfetchmerge 의 과정을 포함하고 있는 것이기에 fetch 이후 merge 를 수행하면 pull 명령과 동일한 수행 내역이 되는 것이다.

  1. pull은 Remote repository가 Local에 비해 더 최신 커밋이 존재할 때만 내려받도록 하는게 좋다.

  2. fetch은 Remote와 Local의 변경 사항이 다를때, 이를 비교 및 대조하는 확인 작업이 필요할때 사용한다.

    • 확인 작업을 꼼꼼히 진행후에, merge을 통해 최신 커밋 내역을 반영하거나 충돌 문제를 해결할 수 있다.


Git Fetch

2024/01/05 )
원격 저장소의 변경사항들을 로컬저장소로 가져오기 전 변경 내용을 확인하고 싶은 경우에 사용하는 명령어이나,
https://velog.io/@devp1023/GIT-Fetch
이곳의 포스팅을 참고하여 터미널로 시도해보려 하니 어렵다. 좀 더 해봐야 할 듯 싶음. 아직 지식이 부족한 느낌이다.

추후 다시 수정 예정.



참고한 곳

0개의 댓글

관련 채용 정보