프로젝트를 하나 이상의 모습으로 관리는데, 이를 하나의 프로젝트 폴더에서 진행할 수 있도록 해주는게 브랜치이다.
git branch (브랜치 이름)
브랜치 생성하기
git branch
브랜치 목록 확인
git switch (브랜치 이름)
해당 브랜치로 이동
git switch -c (브랜치 이름)
브랜치 생성과 동시에 이동하기
git branch -d (삭제할 브랜치 이름)
해당 브랜치 삭제하기
git branch -D (삭제할 브랜치 이름)
(해당 브랜치에만 있는 내용의 커밋이 있을 경우) 해당 브랜치 강제 삭제하기
git branch -m (기존 브랜치명) (새 브랜치명)
브랜치 이름 바꾸기
git log --all --decorate --oneline --graph
브랜치 내역 편리하게 보기
소스트리로 보는게 훨씬 편하다
merge
두 브랜치를 한 커밋에 이어붙인다
B 브랜치를 A 브랜치로 merge 할때는 (A 브랜치에서 시작)
git merge B
merge는 reset으로 되돌릴 수 있다
git branch -d B
병합된 브랜치 삭제
B 브랜치를 A 브랜치로 rebase 할때 (B 브랜치에서 시작)
git rebase A
이때 A 브랜치는 뒤쳐져 있다 (B가 가장 상위 커밋에 있음)
A 브랜치 이동 후 git merge B
로 B 브랜치 시점으로 fast-foward 한다.
이후 B 브랜치를 삭제해준다
merge, rebase 에서 브랜치간 충돌이 일어날때
(merge) 충돌이 일어난 파일의 코드를 수정한 후
git add .
, git commit
으로 merge 완료한다
git merge --abort
를 통해 merge를 중단할 수 있다
(rebase) 충돌이 일어난 파일의 코드를 수정한 후 git add .
git rebase --continue
로 계속 rebase 진행한다.
merge는 딱 한번 커밋하지만,
rebase는 해당 브랜치의 변경사항 커밋들을 그대로 커밋한다
따라서 충돌이 일어난 횟수만큼 계속 충돌된 부분을 수정해줘야 한다
git rebase --abort
를 통해 merge를 중단할 수 있다