기능

예시

git fetch        # 현재 사용 중인 기본 리모트(origin)에서 데이터를 가져온다.
git fetch origin # 명시적으로 origin에 연결되어 있는 원격 리포지토리의 데이터를 가져온다.
git fetch -all   # 모든 리모트로부터 데이터를 가져온다. 리모트가 origin만 존재한다면 위와 같은 동작 수행 
git fetch origin dev # origin의 원격 dev 브랜치 정보만 업데이트한다.

주의사항

<1> 오동작 예시

  1. git log ..@{u} 등으로 원격에만 존재하는 커밋을 확인하려 할 때, 아래와 같은 에러가 발생한다.
fatal: upstream branch 'refs/heads/dev' not stored as a remote-tracking branch
  1. git branch -a 를 했을 때 모든 브랜치 정보가 나오지 않는다.

<2> Fetch RefSpec 확인 및 수정

# RefSpec 확인
git config --local --get remote.origin.fetch

# 정상 출력: 
+refs/heads/*:refs/remotes/origin/*

# 비정상 출력:
# - 원인: git clone 시 --single-branch, --branch {브랜치} 등으로 제한한 경우
+refs/heads/dev:refs/remotes/origin/dev