장점
1. 브랜치는 독립 공간을 형성하기 때문에 원본(master)에 대해 안전함
2. 하나의 작업은 하나의 브랜치로 나누어 진행되므로 체계적인 개발이 가능함
3. Git은 브랜치를 만드는 속도가 굉장히 빠르고, 적은 용량을 소모함
git branch
# 로컬 저장소의 브랜치 목록 확인git branch -r
# 원격 저장소의 브랜치 목록 확인git branch {브랜치 이름}
# 새로운 브랜치 생성git branch {브랜치 이름} {커밋 ID}
# 득정 커밋 기준으로 브랜치 생성git branch -d {브랜치 이름}
# 병합된 브랜치만 삭제 가능 git branch -D {브랜치 이름}
# 강제 삭제 git switch {브랜치 이름}
# 다른 브랜치로 이동git switch -c {브랜치 이름}
# 브랜치를 새로 생성 및 이동git switch -c {브랜치 이름} {커밋 ID}
# 특정 커밋 기준으로 브랜치 생성 및 이동 현재 HEAD는 master를 가리키고, master의 최신 커밋은 C3인 상태
(master) $ git branch hotfix
(master) $ git commit -m "C4"
(master) $ git switch hotfix
(hotfix) $ git commit -m "C5"
(hotfix) $ git commit -m "C6"
git merge {합칠 브랜치 이름}
(master) $ git merge hotfix
(master) & git merge hotfix
(master) & git merge hotfix
두 브랜치에서 같은 부분을 수정한 경우,
Git이 어느 브랜치의 내용으로 작성해야 하는지 판단하지 못하여
충돌(conflict)이 발생했을 때 이를 해결하며 병합하는 방법
보통 같은 파일의 같은 부분을 수정했을 때 자주 발생
(master) $ git merge hotfix
두브랜치에서 서로 다른 파일을 수정 후 병합하는 경우
-> 자연스럽게 Merge
두브랜치에서 같은 파일의 같은 부분을 수정 후 병합하는 경우
-> 충돌(Conflict)