git Branch란 무엇인가🌿

최준석·2022년 4월 15일
0

git과 github

목록 보기
3/3

git branch란??

git branch

분기점을 생성하여 독립적으로 작업할 수 있도록 도와주는 모델이다.

branch라는 영어 뜻이 가지인 것 처럼 여러 가지를 만들어 각각의 가지마다 코드를 작성하고 변경할 수 있게 해주는 것이다.

필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치에 영향을 받지 않기 때문에, 여러 작업을 동시에 할 수 있다.

그리고 이렇게 만들어진 브랜치는 다른 브랜치와 병합(merge)하면서, 작업한 내용을 하나의 브랜치로 모을 수 있다.

즉, 여러명이 동시에 개발을 할 때, 서로의 작업에 영향을 주거나 받지 않는다.

만약 내가 작업한 것이 잘못되어 전체를 날려야할 경우에도 해당 작업 브랜치만 삭제하고 다시 만들면 된다.

git branch 관련 명령어

git branch 명령어를 사용하여 브랜치 생성, 나열, 이름 변경 및 삭제 등을 할 수 있다.

  • $ git branch : 저장소의 모든 브랜치를 보여준다. = $git branch --list

  • $ git branch 브랜치명 : 브랜치명이라는 새 브랜치를 만든다.

  • $ git branch -d 브랜치명 : 브랜치 삭제 (사용완료, 실패했을 때 등 주기적으로 삭제하는것이 좋다.)

  • $ git switch 브랜치명 : 해당 브랜치로 이동 = $ git checkout 브랜치명

    $ git checkout 명령어로 사용되다가 최근에 $ git switch로 바뀌는 추세이므로 둘다 알아두는 것이 좋다.

  • $ git merge 브랜치명 : 해당 브랜치명을 현재 위치의 브랜치에 병합한다.

    예를 들어, hello라는 브랜치를 main 브랜치에 병합하고 싶다면
    현재 위치를 main 브랜치에 두고 $ git merge hello를 입력한다.

  • $ git push (-u) origin 브랜치명 : 해당 브랜치를 원격저장소에 push한다.

git flow

branching models 중 git flow에 대해 알아보자.

git flow

  • git flow의 장점 : 가장 많이 적용한다, 각 단계가 명확히 구분된다.
  • git flow의 단점 : 복잡하다

git branch 종류 이해하기

1. main(master) branch

사용자가 사용할 수 있는(제품으로 출시될 수 있는) 것만 있는 브랜치
: 배포 이력을 관리하기 위해 사용. 즉, 배포 가능한 상태만 관리한다.

예전에는 master branch로 사용했지만, 요즘에 main branch로 바뀌고 있으므로 main branch로 기억하는 것이 좋다.

2. develop branch

다음 개발을 위해 개발자들이 사용하는 브랜치

  • 기능 개발을 위한 브랜치들을 병합하기 위해 사용한다.
  • 평소 develop branch를 기반으로 개발을 진행한다.
  • 모든 기능이 추가되고 버그가 없어 안정적인 상태의 develop branch를 main branch에 병합한다.

3. feature branch

기능을 개발하는 브랜치

  • 새로운 기능을 개발할 때 및 버그 수정이 필요할 때 develop branch에서 분기한다.
  • 개발이 완료되면 develop branch에 병합하고, 더 이상 필요하지 않다고 판단되면 해당 feature branch는 삭제한다.
  • 이름 정하기 : feature/기능요약 형식을 추천한다.

4. release branch

출시할 버전을 준비(테스트)하는 브랜치

  • release branch를 사용함으로써 한 팀이 배포를 준비하는 동안 다른 팀은 다음 배포를 위한 기능 개발을 계속 할 수 있다.
  • develop branch에서 배포할 수 있는 수준의 기능이 모이거나 배포 일정이 되면, release branch를 분기한다.
  • release branch에서 배포 준비가 완료되면,
    1. main branch에 병합한다.(병합한 commit에 release 버전 태그 부여)
    2. 배포 준비동안 release branch에 수정된 부분이 있을 수 있으므로 배포 완료 후 develop branch에도 병합한다.
  • 이름 정하기 : release-* 형식을 추천한다.(*에 버전 명시)

5. hotfix branch

출시한 버전에서 발생하나 버그를 긴급 수정하는 브랜치

  • main branch에서 분기한 브랜치이다.
  • develop branch에서 수정하면 시간이 많이 소요되므로 바로 배포가능한 main branch에서 분기하여 버그를 수정한 후 다시 main branch로 병합한다.
profile
커피를 좋아하는 프론트엔드 개발자입니다.

0개의 댓글