
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 (작성중)
[Git] Git Summary (작성중)
git이란2024.05.20 - [utils/git and github] - Git : 소개 git 설치 후 해줘야 하는 작업들[Git] git 설치 후 우선 해줘야 하는 작업들 (tistory.com)local repository 초기화2024.05.20 - [utils/git and github] - [Git] init : local repo
ds31x.tistory.com
'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 |