기능
- 원격 리포지토리의 특정 브랜치의 커밋 변경사항을 현재 브랜치로 가져온다.
형식
git pull # 현재 연결된 업스트림이 있을 경우, 업스트림으로부터 pull
git pull {리모트명} {브랜치명} # 지정한 리모트/브랜치로부터 pull
옵션
--ff-only
--no-ff
--rebase
--no-rebase
--autostash # git pull을 수행하기 전에 stash, 수행 후 stash pop을 자동으로 수행한다.
--set-upstream #
예시
# [1] 병합 수행, fast-forward가 가능하면 병합 커밋 없이 포인터를 이동
# git config pull.rebase=true 인 경우, 협업에서 치명적일 수 있으므로 주의해야 한다.
git pull origin dev
# [2] 병합 수행, fast-forward가 가능하면 병합 커밋 없이 포인터를 이동
# git config pull.rebase=false 인 것처럼 동작. 협업 시 비교적 안전하게 병합된다.
**git pull origin dev --no-rebase**
# [3] 병합 수행, 다른 브랜치에서 pull할 때마다 무조건 병합커밋 생성
git pull origin dev --no-ff
업스트림 브랜치
<1> 확인
# 로컬에 존재하는 모든 브랜치의 업스트림 브랜치 확인
git branch -vv
# 현재 브랜치의 업스트림 브랜치 확인
git rev-parse --abbrev-ref --symbolic-full-name @{u}
<2> 설정
# 업스트림 브랜치만 설정
git branch --set-upstream-to=<remote>/<branch>
git branch --set-upstream-to=origin/dev # 예시
git branch --set-upstream-to=origin/HEAD # 현재 브랜치명이 뭔지 잠시 잊었을 때 꿀팁(현재 로컬 브랜치와 같은 이름의 원격 브랜치로 설정)
# pull 하면서 설정(pull은 -u가 없음)
git pull <remote> <branch> --set-upstream
# push하면서 설정
git push -u <remote> <branch>
git push <remote> <branch> --set-upstream