소스코드의 한 시점과 동일한 상태를 만들고 브랜치를 넘나들며 작업 수행 가능.
여러 개발자가 동시에 다른 작업을 할 수 있다.
기존의 소스코드를 해치지 않으면서 다른 작업을 시도해보고 싶을 때도 활용 가능
각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다.
Integration branch - 배포용 최종 브랜치(main, master)
Feature branch - 단위 작업을 위한 브랜치. topic branch 라고도 함.
git branch <BranchName> - 새로운 브랜치 생성git switch <BranchName> - 해당 브랜치로 전환git switch -c <BranchName> - 새로운 브랜치 생성하고 전환git branch - 브랜치 목록git branch -v - 브랜치 목록, 각 브랜치의 최근 커밋git branch -d <BranchName> - 브랜치 삭제git branch -D <BranchName> - 병합되지 않은 브랜치 강제삭제git merge <BranchName> - 브랜치 병합 (병합받고자 하는 브랜치로 이동한 후)git log --branches --graph --decorate - 로그에 모든 브랜치를 그래프로 표현git stash - 아직 commit 하지 않은 작업을 스택에 임시로 저장rebase - 기존의 commit 수정squash - commit 합치기cherry-pick - commit 중 병합하고싶은 commit 만 골라서 병합