브랜치란?
•
원래 코드와 상관없이, 독립적으로 개발을 진행할 수 있게 도와주는 것
•
협업을 할 시 브랜치 전략을 사용하여 개발하는 것이 좋다.
•
브랜치의 역할
◦
동시에 여러 작업을 진행할 때의 작업 흐름을 한눈에 파악하기 위한 것
◦
작업 단위 역할을 하여 문제 발생 시 빠른 대처 및 대책 세우기를 하기 위한 것
브랜치 상태 확인
# 브랜치의 상태 확인
# 현재 브랜치가 어딘지
# 커밋을 해야 하는지
# 작업 상태 확인
git status
Bash
복사
브랜치 조회
# 기본 명령어
git branch
git branch -a
# or
git branch -all
# 로컬 및 원격 브랜치를 전부 확인하는 옵션
Bash
복사
브랜치 이동
•
원래는 checkout으로 모든 기능을 수행하였지만 문제가 야기될 수 있기에 switch가 전용 명령어로 생겨남.
# 모든 기능이 집약되어 있는 명령어 : checkout
git checkout <브랜치 이름>
# 이동 전용 명령어 (추천) : switch
git switch <브랜치 이름>
# -c : 브랜치 생성 및 이동
git switch -c <브랜치 이름>
==
git branch <브랜치 이름>
git switch <브랜치 이름>
Bash
복사
브랜치 삭제
# 문제가 있는 브랜치(정상적인 머지 상태가 아니거나
# 충돌이 해결되지 않은 브랜치)라고 판단 될 경우 git에서 에러 발생
# 명령어는 실행되지 않는다.
git branch -d <브랜치이름>
# 무시 후 삭제. 에러가 존재하여도 명령어 수행
git branch -D <브랜치이름>
Bash
복사
브랜치 병합
•
3-way-merge
◦
서로 다른 브랜치를 병합할 경우에 병합용 커밋이 따로 생성되는 것
•
fast-forward merge
◦
한 브랜치에서만 작업을 하였을 때 충돌이 나지 않아 따로 병합 이력이 남지 않는 것
◦
병합의 이력을 남기고 싶을 경우엔 병합 옵션을 추가
# 기존 병합 - 현재 위치 브랜치에 작성한 브랜치를 병합
git merge <브랜치 이름>
# fast-forward merge 해제
git merge --no-ff <브랜치 이름>
# 3-way-merge를 fast-forward merge로 강제 변경
git rebase
# 원격 저장소에서는 사용X 권장
# 커밋을 한 줄로 만들어 강제 변경
Bash
복사