Git branch

브랜치(branch)는 동일한 소스코드를 기반으로 여러 사람서로 다른 작업을 할 때 각각 서로 다른 버전의 코드를 만들 수 있도록 해준다. 즉, 여러 작업을 독립적으로 진행할 수 있고, 병합을 통해 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있다.

처음 저장소를 만들면 ‘master'라는 이름의 브랜치가 생성된다.

브랜치 종류

  • 통합 브랜치(Integration Branch)

    • 배포할 수 있는 버전을 위한 브랜치
    • 기능이 안정적으로 정상 동작하는 상태
    • 일반적으로 ‘master'브랜치를 사용
  • 토픽 브랜치(Topic Branch)

    • 기능 추가 또는 버그 수정과 같은 단위 작업을 위한 브랜치
    • 여러 개의 작업을 동시 진행할 때, 그 수만큼 토픽 브랜치를 생성
    • 통합 브랜치에서 만들어 내어, 특정 작업이 완료되면 다시 통합 브랜치에 병합
    • 피처 브랜치(feature branch)라고 부르기도 한다
  • git branch : 모든 branch 출력
    • git branch [브랜치명] : 새로운 branch 생성
    • git branch -d [브랜치명]: Local branch 제거
    • git push -d [원경저장소명] [브랜치명] : Remote branch 제거
  • git checkout [브랜치명] : branch 이동
병합(merge)가 필요한 경우

If - 내가 PULL을 실행한 후, 다른 사람이 PUSH를 하여 원격 저장소를 업데이트 한 경우,

​ 나의 PUSH요청이 거부되기 때문에 다른 사람의 업데이트 이력을 내 저장소에도 갱신해야 한다.

  • git merge [브랜치명] (목적) : 현재 branch(s)에서 대상 branch(O)를 병합

If - 병합(merge)전에 원격 저장소와 로컬 저장소 양쪽에서 파일의 동일한 부분을 변경한 경우,

​ 충돌 발생 & PUSH가 거부됨(파일에 충돌이 발생한 부분이 표시됨)

  • merge한 파일을 수정 후 PUSH