소스코드의 한 시점과 동일한 상태를 만들고 브랜치를 넘나들며 작업 수행 가능.
여러 개발자가 동시에 다른 작업을 할 수 있다.
기존의 소스코드를 해치지 않으면서 다른 작업을 시도해보고 싶을 때도 활용 가능
각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다.
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 만 골라서 병합