프로젝트를 진행하면서 Gitlab으로 버전 관리를 하며 여러 사람들과 협업을 한다. 협업을 하며 다른 팀원들이 생성한 remote의 여러 branch를 정리해보았다.🎈
$ git branch -r
origin/HEAD -> origin/master
origin/master
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
🥕 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과 같아진다. (병합 포함)
$ git remote update
$ git remote prune origin
$ git remote update --prune
$ git fetch -p
From github.com:test/test
x [deleted] (none) -> origin/test