[Git] 원격/로컬 저장소 관리

프로젝트를 진행하면서 Gitlab으로 버전 관리를 하며 여러 사람들과 협업을 한다. 협업을 하며 다른 팀원들이 생성한 remote의 여러 branch를 정리해보았다.🎈

⑴ branch 목록 조회

  • remote branch 조회
$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  • local과 remote 저장소의 모든 branch 조회
$ git branch -a
*  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

⑵ pull과 fetch

🥕 pull : remote 저장소로부터 최신 내용을 로컬로 가져오면서 병합한다. [다운 + 병합]

  • git pull = git fetch + git merge

  • local 브랜치와 remote 저장소 origin/master가 같은 위치를 가리킨다.

🧀 fetch : remote 저장소로부터 커밋들을 로컬로 가져온다. (병합은 별개)

  • local 브랜치는 원래 있던 local의 최근 커밋 위치를 가리키고,
    remote 저장소 origin/master는 가져온 최신 커밋을 가리킨다.

  • 사용하는 이유:

      1. 원래 내용과 바뀐 내용과의 차이를 알 수 있음 ($ git diff HEAD origin/master)
      2. commit이 얼마나 됐는지 알 수 있음 ($ git log --decorate --all --oneline)

     → 이런 내용들을 확인 후 git merge origin/master하면 git pull과 같아진다. (병합 포함)

⑶ remote/local branch update

  • local 저장소에 있는 모든 branch의 remote 정보를 업데이트, fetch한다.
$ git remote update
  • remote에서 새로 추가되거나 삭제된 branch 업데이트 → remote 브랜치의 더 이상 유효하지 않은 참조를 지운다.
$ git remote prune origin
$ git remote update --prune
  • local 저장소를 최신 정보로 갱신(remote 저장소와 동기화)하며 자동적으로 더이상 유효하지 않은 참조를 제거한다.
$ git fetch -p
From github.com:test/test
 x [deleted]         (none)     -> origin/test


Reference

좋은 웹페이지 즐겨찾기