Post

Branch

가지치기


  • 정의 : 특정 커밋에서 분기하여 새로운 흐름을 생성하는 작업

  • 규칙
    • 통상 Main Branch 커밋에서 Sub Branch 로 가지치기함
      • Main : 최종본 커밋을 기록하는 브랜치로서 기본값으로 설정되어 있는 브랜치
      • Sub : 특정 최종본으로부터 분기되어 변경된 사항들을 기록하는 브랜치
    • 최종본 커밋을 기록하는 브랜치에는 최종본 내역 이외의 내역을 남기지 않음
      • Main Branch 에는 최종본 커밋만을 기록함
      • Sub Branch 에는 작업 커밋을 기록함
  • 방법 : Five Branch Style

    01

    • Main : 최종본 커밋을 기록하는 브랜치
    • Develop : Feature 들을 병합하는 브랜치
    • Feature : Develop 로부터 작업 주제에 따라 추가 분기하는 브랜치
    • Release : Develop 에서 확정되어 최종본이 된 커밋을 Main 으로 배포하는 브랜치
    • Hot-Fix : Develop 을 거치지 않고 수정하고 싶을 때 Main 에서 임시 분기하는 브랜치

Pruning


1
git branch <OPTION>
  • branch : 브랜치 관리(조회, 생성, 이름 변경, 삭제 등)에 대하여 기능함

  • <OPTION>

    • None : 로컬 저장소에 존재하는 브랜치 목록을 조회함
    • -vv : 로컬 저장소에 존재하는 브랜치 및 각 브랜치가 추적하는 원격 브랜치 목록을 조회함

Create, Rename, Delete

1
git branch <OPTION> <BRANCH-NAME>
  • branch : 브랜치 관리(조회, 생성, 이름 변경, 삭제 등)에 대하여 기능함

  • <OPTION>

    • None : 현재 체크인하고 있는 커밋으로부터 분기하는 새로운 브랜치 <BRANCH-NAME> 를 생성함
    • -m : 현재 체크인하고 있는 브랜치 이름을 <BRANCH-NAME> 으로 변경함
    • -d : 브랜치 <BRANCH-NAME> 를 삭제함

Check-In

1
git switch <OPTION> <BRANCH-NAME>
  • switch : 브랜치 및 커밋의 전환에 대하여 기능함

  • <OPTION>

    • -c : 현재 체크인하고 있는 커밋에서 분기하는 새로운 브랜치를 만들고 해당 브랜치로 체크인함

Integration


Merge

02

1
2
git switch <OPTION> <BASE-BRANCH>
git merge <OPTION> <TARGET-BRANCH>
  • merge : 현재 체크인한 브랜치에서 다른 브랜치를 병합하여 새로운 커밋을 생성함

  • <OPTION>

    • --abort : 충돌 시 병합을 중단함
    • --continue : 충돌 시 병합을 재개함

Rebase

03

1
2
git switch <OPTION> <TARGET-BRANCH>
git rebase <OPTION> <BASE-BRANCH>
  • rebase : 현재 체크인한 브랜치 내역을 다른 브랜치와 공통분모가 되는 커밋에 삽입함

  • <OPTION>

    • --abort : 충돌 시 병합을 중단함
    • --continue : 충돌 시 병합을 재개함

Reference

This post is licensed under CC BY 4.0 by the author.