git pull
Remote repository 의 최신 commit 을 가져와
Local repository의 해당 branch에 병합.
- 최신 commits 을 받아와 임시 영역에 저장: (이 과정을
fetch
라고 함).
(remote resository 를 위한 임시 branch 에 저장하여 stage 영역과 분리 관리). - 해당 임시 영역에 저장된 commits 를 현재의 branch 의 내용들과 검토하여
merge
. - 해당
merge
는 "remote repository의 commits" 과 "local repository 의 commits" 를 하나로 합치는 것: pull 에서는 자동으로 수행함. - 자동으로
merge
가 안되는 경우, conflict 를 발생시키고 이는 사용자가 처리 해야함 (여러 사용자가 push등을 따로 한 경우 등등..)
명령어
다음의 명령어는 origin에서 main 브랜치를 가져와서 현재의 local 의 branch와 병합함.
git pull origin main
origin
: remote respository 의 aliasmain
: 가져올 branch.
일반적으로는 git pull
만 수행하여 현재 연결된 원격지의 브랜치의 commits를 현재 local의 브랜치로 병합.
git fetch
위에서 본 것처럼, pull
은 자동으로 remote repository의 commits를 local의 브랜치와 merging을 시킴.
이와 달리, fetch
는 우선 최신 commit을 remote repository를 위한 임시 branch에만 저장만 하고 자동으로 merge
하지 않음.
fetch
를 수행하면, 최신 commits 가 무엇인지는 알고 있으나,- 이를 local repository에 반영하지 않으며,
- 이를 반영하기 위해서는 따로, merge 처리를 해야함.
local repository에 반영이 되지 않기 때문에, fetch
이후에 git log
를 수행해도, 변화가 없음.
다음과 같은 장점 때문에 git fetch
가 존재함.
git fetch
는 원격 저장소의 변경 사항을 가져와 로컬 저장소에 업데이트하지만, 로컬 브랜치에는 병합하지 않는 명령어임.- 이는 원격 저장소의 최신 상태를 확인하고, 로컬 브랜치에 변경 사항을 병합하기 전에 검토할 수 있는 안전한 방법임.
참고로,
git fetch --all
을 수행하면
remote repository의 모든 branch를 가져옴.
명령어
git fetch
는 일반적으로 git merge
와 함께 수행됨: 이 둘을 합친게 git pull
임.
# fetch 후 병합
git fetch origin master
git merge origin/master
- origin 원격 저장소에서 master 브랜치의 변경 사항을 가져옴
- 가져온 변경사항(commits)들을
git merge
로 local respoitory의 현재 브랜치에 병합
위의 명령어는 다음과 같음.
git pull origin master
같이 읽어보면 좋은 자료들
2024.05.20 - [utils/git and github] - [Git] Git Summary (작성중)
'utils > git and github' 카테고리의 다른 글
[Git] Remote Repository (0) | 2024.05.26 |
---|---|
[Git] remote, remote add, remote show: 원격저장소와 연결 (0) | 2024.05.26 |
[Git] push (0) | 2024.05.26 |
[Git] Tutorial: 3-way merge, fast forward, and rebase (0) | 2024.05.26 |
[Git] merge mode: merge and rebase. (0) | 2024.05.26 |