Skip to content

Latest commit

 

History

History
36 lines (21 loc) · 1.88 KB

branch-workflow.md

File metadata and controls

36 lines (21 loc) · 1.88 KB

브랜치 워크플로

Long-Running 브랜치

마스터 브랜치가 개발 브랜치에 많이 뒤쳐진 형태 개발 브랜치가 충분히 안정화가 됐을 때 마스터 브랜치로 Merge된다.

토픽 브랜치

짧은 호흡으로 한 가지 기능을 만들 때 사용하는 브랜치 주제별로 독립해서 브랜치를 만들기 때문에 내용별로 검토하고 테스트하기 편하다.

리모트 브랜치

리모트 브랜치의 이름은 (remote)/(branch) 형식으로 되어 있다. ex) origin/master

서버에서 저장소 하나를 클론하면 Git이 이 저장소에 origin이라는 이름을 자동으로 붙인다. origin에서 저장소 데이터를 모두 내려받으면 master 브랜치를 가리키는 포인터가 생기고 이 포인터는 origin/master라고 불리고 로컬에서 조종할 수 없다.

로컬에서는 master 브랜치가 origin/master가리키게 한다.

로컬에서 따로 저장소 정보를 동기화 하지 않으면 누군가가 서버에 Push를 해도 로컬에 반영되지 않는다.

git fetch origin 명령으로 리모트 서버와 로컬의 정보를 동기화할 수 있다. 동기화 시 로컬에 없는 새로운 정보를 내려받고 origin/master 포인터의 위치를 최신커밋으로 이동시킨다.

Push하기

로컬의 브랜치를 서버로 전송하려면 리모트 저장소에 쓰기 권한이 있어야 한다. 브랜치를 명시적으로 Push해야 정보가 전송되고 이 덕분에 로컬에만 있는 비공개 브랜치를 만들 수 있다.

브랜치 추적

트래킹 브랜치에서 git pull 명령을 실행하면 리모트 저장소에서 데이터를 내려받아 연결된 리모트 브랜치와 자동으로 Merge한다.

서버 저장소 클론시 master 브랜치가 origin/master 브랜치의 트래킹 브랜치가 된다.