깃 기본 개념 정리 - Branch, Fork, PR

Ji·2021년 12월 6일

Branch

  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 각자 독립적인 작업 영역(저장소) 안에서 여러 개발자들이 동시에 다양한 작업을 할 수 있게 해줌.
    • 브랜치 생성: git branch branchname
    • 브랜치 조회: git branch
    • 브랜치 전환1: git checkout branchname
    • 브랜치 전환2: git checkout -b branchname: 브랜치 작성과 체크아웃을 한꺼번에 실행
    • 브랜치 병합: git merge commit
      -> 이 명령어에 병합할 커밋 이름을 넣어 실행하면, 지정한 커밋 내용이 'HEAD'가 가리키고 있는 브랜치에 넣어짐. 'HEAD'는 현재 사용중인 브랜치에 위치하게 됨.
      'master' 브랜치에 넣기 위해서는 우선 'master' 브랜치에 'HEAD'가 위치하게 만들어야 함.
    • 브랜치 삭제 git branch -d branchname

Branch 종류 [Git-Flow]

Master Branch

  • 제품으로 출시될 수 있는 브랜치 (배포)
  • 저장소 생성시 master branch 생성됨
  • 배포 가능한 상태만을 관리, 커밋할 때에는 태그를 사용하여 배포 번호를 기록함.

Develop Branch

  • 다음 출시 버전을 개발하는 브랜치 (개발) (병합 대상) 이 브랜치를 기반으로 개발 진행.

Feature Branch

  • 기능을 개발하는 브랜치
  • 기능 개발, 개발 완료 시 Develop Branch로 병합
  • 기본적으로 공유할 필요가 없기 때문에, 원격으로는 관리하지 않는다.
  • Feature/{branch-name}

Release Branch

  • 이번 출시 버전을 준비하는 브랜치 (출시)
  • 릴리즈를 위한 최종적인 버그 수정 등 개발 수행.
  • 버그를 수정 혹은 새로운 기능을 포함한 상태로 모든 기능이 정상적으로 동작하는지 확인
  • 브랜치의 이름은 관례적으로 브랜치 이름 앞에 ‘release-‘ 를 붙힌다.

Hotfix Branch

  • 출시 버전에서 발생한 버그를 수정 하는 브랜치 (버그)
  • 배포한 버전에 긴급하게 수정을 해야 할 필요가 있을 경우, ‘master’ 브랜치에서 분기한다.
  • 브랜치 이름 앞에 ‘hotfix-‘를 붙히는 특징이 있음.

Fork

  • 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제함.

Pull Request

  • fork 및 파일 수정 후, 다른 사람의 Github repository에 변경 사항을 적용하고 싶으면 해당 저장소에 요청을 한다.
  • pull request가 original repository의 관리자로 부터 승인 되었으면 내가 만든 코드가 commit, merge되어 original 에 반영
profile
공부방

0개의 댓글