본문 바로가기
Git using(깃 사용하기)

깃(git) pull과 fetch의 차이 (깃 풀과 페치의 차이)

by 코딩하는 동현😎 2022. 4. 17.

git pull(풀)과 fetch(페치)의 차이는 서버와 로컬의 병합을 자동처리하는지의 여부입니다.

 

pull는 원격 서버에서 최신 커밋들을 내려받아서 현재 로컬 브랜치와 자동으로 병합합니다.

혼자 개발하는 프로젝트에서는 pull만 써도 상관 없겠지만 여러개발자와 협업할때는 pull의 자동병합은 문제가 될때가 많습니다.

풀로 자동병합을 하지 못할땐 페치 방식을 사용해야합니다.

 

fetch는 원격저장소에서 커밋된 코드를 임시 브랜치로 다 내려받습니다.

그러나 내려받은후 현재 브랜치와 자동 병합하지 않고, 그렇기 때문에 워킹디렉터리도 변화가 없습니다.

그래서 merge 명령어를 이용해서 수동 병합해야합니다.

 

두 명령어

git pull 별칭 브랜치이름 : 원격저장소에 있는 내용을 한번에 내려받는다. 최신 커밋과 내 로컬파일과 자동 병합한다.

원격저장소가 로컬저장소보다 더 최신 커밋이 있을때만 내려받는다.

 

git fetch 원격저장소URL: (수동병합) 로컬 저장소와 원격 저장소의 변경 사항이 다를 때 이를 비교 대조하고 git merge 명령어와 함께 최신 데이터를 반영하거나 충돌 문제 등을 해결한다. 

이미 remote로 등록을 했다면 git fetch만 써주면 됩니다.

 

 

페치로 수동병합하는 법

  1. git fetch
  2. git merge 원격저장소별칭/브랜치이름
    • git merge origin/master : 현재 로컬 브렌치에 원격저장소의 master브랜치의 커밋내용이 적용됩니다.

 

 

이렇게 되면 현재 로컬 브랜치에 지정한 원격서버의 브랜치가 병합됩니다.

 

 

 

즐거운 깃 생활 하세요~😊

반응형

댓글