기능

형식

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