
'branch'는 '가지'라는 뜻을 가지고 있음.
사진에서 파란색 라인이 main 차원. 이를 기준으로 새로운 차원으로 뻗어나가는 것.
후자의 경우, 협업에서 많이 사용된다. 한 사람이 한 프로젝트를 온전히 맡아 하는 것이 아니므로 여러 작업으로 나누어 진행된다. 서로 다른 차원에서 완성된 기능은 main 브랜치에 통합한다.
'add-coach'라는 이름의 브랜치 생성
git branch add-coach

현재 브랜치는 'main'이라는 뜻.
add-coach 브랜치로 이동하려면?
git switch 브랜치 이름
원래 git에서 브랜치를 이동하려면 'checkout'이라는 명령어를 사용하였지만, checkout의 용도가 다양해서 git 2.23 버전부터 switch, restore로 분리되었다.

'add-coach'라는 브랜치로 이동한 것임.

아직 'main'브랜치와 'add-coach'브랜치는 같은 라인에 있음. 아직 갈라지지 않은 상태. 둘 다 'Replace arsenal with manU' 버전에 위치해 있기 때문.

다시 main 브랜치로 돌아온 상태.
git switch -c 새 브랜치명
예전에는 'git checkout -b 새 브랜치명' 명령어를 사용했음.

브랜치 생성과 동시에 이동하기 완료.
git branch로 생성된 브랜치들 확인해보기

세 개의 브랜치 확인.
git branch -d 삭제할 브랜치명
지울 브랜치에 다른 브랜치로 적용되지 않은 내용의 커밋이 있을 시에는 -D(대문자) 옵션으로 강제 삭제한다.
일단 'to-delete'라는 이름의 브랜치를 만들기.
지우기 전에, 브랜치 이름 변경을 먼저 해보겠음.
git branch -m (기존 브랜치명) (새 브랜치명)

브랜치 이름이 변경된 것을 확인할 수 있음.

소스트리에서도 확인 가능.
근데 지금은 하나의 가지에 4개의 브랜치가 싹만 틔운 것임.
새로운 커밋을 추가해야 서로 다른 브랜치로 뻗어나감.

일단 이름 변경한 to-erase 브랜치를 삭제하고 main 브랜치로 돌아오기.
A. main 브랜치
1. liverpool.yaml의 members에서 '알리송 베커' 추가
커밋 메시지 : Add 알리송 베커 to liverpool
2. manU.yaml의 members에서 '라스무스 호일룬' 추가
커밋 메시지 : Add 라스무스 호일룬 to manU

new-teams와 add-coach 브랜치는 싹만 틔워진 상태. main 브랜치만 뻗어나가 있음.
이제 add-coach 브랜치로 이동한 후, 작업을 진행하겠음
B. add-coach 브랜치
1. tottenham.yaml의 매니저 정보 아래 coach : 라이언 메이슨 추가
커밋 메시지 : Add coach 라이언 메이슨 to tottenham
2. liverpool.yaml의 매니저 정보 아래 coach : 펩 레인더르스 추가
커밋 메시지 : Add coach 펩 레인더르스 to liverpool
3. manU.yaml의 매니저 정보 아래 coach : 스티브 맥클라렌 추가
커밋 메시지 : Add coach 스티브 맥클라렌 to manU

소스트리를 보면 무언가 달라져 있음. 가지가 갈라져 있음.
add-coach 브랜치에서는 각 파일의 coach들이 추가되어 있는 상황.
main 브랜치로 돌아가보자.

main 브랜치로 돌아온 상황.
그럼 좀 전에 추가했던 coach들이 싹 다 사라져 있음.
다시 add-coach 브랜치로 돌아가보면

main에서 추가했던 네 번째 선수가 사라져 있고, coach만 추가되어 있음.

new-teams 브랜치로 돌아가보면,

main 브랜치, add-coach 브랜치에서 한 작업들이 추가되지 않음.
그래서 new-teams 브랜치에서의 작업을 따로 해주겠음.
C. new-teams 브랜치
1. chelsea.yaml 추가
team : chelsea
manager : 마우리시오 포체티노
members :
- 코너 갤러거
- 모이세스 카이세도
- 미하일로 무드리크
커밋 메시지 : Add team chelsea
2. wolverhampton.yaml 추가
team : wolverhampton
manager : 게리 오닐
members :
- 황희찬
- 마테우스 쿠냐
- 페드루 네투
커밋 메시지 : Add team wolverhampton

main 브랜치에서 두 갈래,
add-coach 브랜치에서 세 갈래,
new-teams 브랜치에서 두 갈래 생성.

main 브랜치로 돌아가면, 앞서 만든 두 파일이 사라짐.
git log는 위치한 브랜치에서의 내역만 확인 가능.
git log --all --decorate --oneline --graph

내역들이 뜬다! 분기된 가지들을 텍스트로 표현한 것.
근데 사실 소스트리로 보는 것이 더 편함.