특정 기준에서 줄기를 나누어 작업할 수 있는 기능을 **브랜치(Branch)**라고 한다.
커밋은 바로 이전에 만들었던 커밋을 포인터로 가르키게 된다.
HEAD 라는 특수한 포인터를 이용해서 브랜치 사이를 넘나들 수 있다.
대체로 하나의 브랜치에는 한 명만 작업을 한다. 작업이 꼬일 수 있기 때문에 개발시 다음과 같은 간단한 Branch 규칙을 정하기도 한다. 아래는 예시다.
"feature/detail-page" 라는 브랜치를 만들어 기능을 추가해보자.
상단의 브랜치를 클릭한다. 현재 브랜치가 Master인지 확인한다. 이 브랜치가 가리키는 커밋을 기준으로 새로운 브랜치를 만들기 때문이다. '새 브랜치 체크아웃' 체크박스를 선택하고 '브랜치생성'을 클릭한다.
체크아웃은 브랜치를 이동하라는 명령이다. 브랜치를 생성하면 생성한 브랜치로 이동한다.
'/' 로 구분을 할 경우 feature아래에 detail-page가 있는 것 처럼 폴더형식으로 구분할 수 있다.

vscode에서 'detail-page.md' 파일을 만든 후 "디테일 페이지"라고 적고 저장한다.
"디테일 페이지 추가"라고 커밋메시지를 작성하고 커밋을 만들어 준다.
master브랜치 위에 feature/detail-page브랜치를 생성하고 커밋을 추가한 것을 확인할 수 있다.
커밋을 하나 더 추가한다. 기존의 md파일을 수정하고 커밋을 만들자.
GitHub에서 브랜치가 추가된 것을 확인할 수 있다.
다른 개발자가 '장바구니'기능을 만든다고 가정해보자. feature/detail-page 브랜치에 남아서 브랜치를 만들면 다른쪽에서 만들던 수정본이 반영되므로 Master 브랜치로 돌아가서 새로운 브랜치를 만들어야한다. 수정본이 반영되지 않기 위해서 Base브랜치를 잘 설정해야한다.