본문 바로가기
Linux & GIT

Git fetch, Git merge 그리고 Git pull

by 누워서 코딩 2019. 6. 7.

Git fetch란?

remote에서 업데이트된 repository들을 가져와서 내 local

repository를 갱신하는 명령이다.

 

다음 그림을 보자.

master인 내 local repository의 현재 상태는

commit B에서 C와 D 가 작업된 상태다.

origin/master인 remote repository의 상태는 X에서 Y까지

commit이 업데이트 된 상태다.

 

만약 이때 git fetch명령을 실행하게되면 

remote repository의 X에서 Y까지의 repository를 

내 local repository로 갱신하게 된다.

 

이까지가 git fetch실행시의 remote/local의 repository상태이다.

 

 

 

이때 만약 내 local에서 작업한 C, D와 remote의 X,Y를 merge(병합)해서

최신의 상태를 유지하고 싶다면 어떻해야할까?

 

git fetch이후 git merge 명령을 수행하면된다.

 

간략히 설명하면 다음 과정으로 수행된 것이다.

1. remote repository의 상태를 local repository로 갱신

2. local repository의 내가작업한 내용까지 merge

 

또한 위 git fetch와 git merge를 수행을 한번에 수행하는

command가 있다.

이것이 git pull 명령어이다.

 

git pull = git fetch + git merge 인 셈이다.

 

git pull 사용하는 경우:

remote의 내용을 가져와

내 작업한 내용과 병합하고 싶을때 사용

 

git fetch 사용하는 경우:

내가 작업한 내용과 병합은 하지않고

remote의 내용만 가져와서

보기만 하고 싶을때 사용

댓글