마스터 브랜치가 개발 브랜치에 많이 뒤쳐진 형태 개발 브랜치가 충분히 안정화가 됐을 때 마스터 브랜치로 Merge된다.
짧은 호흡으로 한 가지 기능을 만들 때 사용하는 브랜치 주제별로 독립해서 브랜치를 만들기 때문에 내용별로 검토하고 테스트하기 편하다.
리모트 브랜치의 이름은 (remote)/(branch)
형식으로 되어 있다. ex) origin/master
서버에서 저장소 하나를 클론하면 Git이 이 저장소에 origin
이라는 이름을 자동으로 붙인다.
origin
에서 저장소 데이터를 모두 내려받으면 master
브랜치를 가리키는 포인터가 생기고 이 포인터는 origin/master
라고 불리고 로컬에서 조종할 수 없다.
로컬에서는 master
브랜치가 origin/master
가리키게 한다.
로컬에서 따로 저장소 정보를 동기화 하지 않으면 누군가가 서버에 Push를 해도 로컬에 반영되지 않는다.
git fetch origin
명령으로 리모트 서버와 로컬의 정보를 동기화할 수 있다.
동기화 시 로컬에 없는 새로운 정보를 내려받고 origin/master
포인터의 위치를 최신커밋으로 이동시킨다.
로컬의 브랜치를 서버로 전송하려면 리모트 저장소에 쓰기 권한이 있어야 한다. 브랜치를 명시적으로 Push해야 정보가 전송되고 이 덕분에 로컬에만 있는 비공개 브랜치를 만들 수 있다.
트래킹 브랜치에서 git pull
명령을 실행하면 리모트 저장소에서 데이터를 내려받아 연결된 리모트 브랜치와 자동으로 Merge한다.
서버 저장소 클론시 master
브랜치가 origin/master
브랜치의 트래킹 브랜치가 된다.