티스토리 뷰

git

Git Flow

미짱~ 2022. 12. 19. 16:24

 

Git Flow

브랜치 모델 (Branch Model)이란 브랜치 이름, 브랜치 별 임무를 규정

   => 브랜치 모델 중 가장 유명한 게 Vincent Driessen가 만든 Git Flow이다.

 

5종류의 브랜치 (프로젝트의 효율성을 올리기 위해 분류, 적절한 커밋 단위를 설정하기 용이)

작업은 feature -> develop -> release -> master 순으로 merge 시켜서 관리

  • master : 최종 product를 release 할 때 release 브랜치를 master 브랜치로 merge, 해당 버전에 대한 태그를 단다
  • develop : 기능 개발이 완료되면 feature 브랜치에서 기능별 브랜치를 만들어 작업
  • feature : 다가오는 배포(release)를 위한 새 기능(feature)을 개발, 일반적으로 개발자의 저장소에만 존재 
  • release : 새로운 product (웹, 앱, 게임 등)출시 준비를 지원,  사소한 버그 수정, 메타 데이터 준비를 허용
  • hotfix : 현재 출시된 product에 문제가 생겨 즉각 대응해야 하는 상황에 필요 , master 브랜치의 현재 출시된 버전으로 표기된 태그로부터 브랜치를 딴다

git flow commads

  • $ git flow init: 기존 git 저장소 내에서 초기화 하는 것으로 git-flow의 사용을 시작
  • $ git flow {5 종류의 브랜치 이름} start {branch name} :   

        - {5 종류의 브랜치 이름 중 feature}일 경우 develop 브랜치에 기반한 feature 브랜치를 생성 및 해당 브랜치로 전환

        - {5 종류의 브랜치 이름 중release} 일 경우 develop 브랜치로부터 release 브랜치 생성 

        - {5 종류의 브랜치 이름중 hotfix} 일} 경우 master 브랜치로부터 hoxfix 브랜치 생성 , 버전 인수는 hotfix release 이름으로 지정

  • $ git flow {5 종류의 브랜치 이름} finish {branch name} :

        -  {5 종류의 브랜치 이름 중 feature}일 경우 해당 브랜치를 develop 브랜치에 merge, 기능 브랜치 삭제,

            develop 브랜치로 전환

        -  {5 종류의 브랜치 이름 중 release} 일 경우:

           

            - release 완료하기 위한 작업

         

            1. release 브랜치를 marster 브랜치에 병합

            2. release를 release 이름으로 태그

              - git push --tags 사용해 태그들을 push

            3. release를 develop 브랜치로 재병합 

            4. release 브랜치 삭제               

       

        - {5 종류의 브랜치 이름중 hotfix} 일 경우 develop 및 master 브랜치로 merge, master의 merge 부분은

           hotfix 버전으로 태그 

 

장점 

  •  브랜치 자동으로 생성/ 삭제/  병합 가능
  • 브랜치 이름을 일관적으로 사용 가능 
  • 브랜치 별 역할이 명확히 구분되어, 각 브랜치 상태에 따라 배포 및 테스트 진행 용이 
  • 승인된 개발자만 코드에 접근할 수 있게 해 안전하게 소스코드 관리 용이 
  • feature 브랜치를 통해 기능 단위로 독립적인 개발 가능 
  • 배포 버전과 개발 버전 분리(multi thread) 가능

단점 

  • release 브랜치 활용도 낮음(버전별 tag가 존재)
  • master 브랜치 활용도 낮음(develop 역할을 대신)

 

해당부분 실습시 release 브랜치를 삭제 해버렸다 ㅜㅜ 

그래서 구글링을 통해 알게된 명령어 

 

설명도 깔끔한 블로그

$ git switch -c {브랜치명} > https://kotlinworld.com/303

 

[Git] reflog를 활용한 삭제된 브랜치 복구 방법

reflog란? reflog란 git에서 가리키는 referenced commit이 변경된 내역이다. reflog를 기록하는 것은 대표적으로 HEAD와 branch 두가지이다. HEAD의 reflog HEAD의 reflog 경우 새로운 커밋이 생기거나, branch가 switch

kotlinworld.com

 

참고

https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html

 

git-flow cheatsheet

 

danielkummer.github.io

http://amazingguni.github.io/blog/2016/03/git-branch-%EA% B7% 9C% EC% B9%99

 

성공적인 Git branch 관리 Model

Git의 가장 큰 장점인 branch라는 개념을 효율적으로 쓰는 방법에 대해 정리하였다. 개요 요즈음 회사에서 진행하는 프로젝트들의 형상 관리 툴로 점점 Git을 선택하고 있어 기왕 사용하는거 일반

amazingguni.github.io

https://applecider2020.tistory.com/36

 

[Git] Git 브랜치 이름은 어떻게 정할까? - Git Flow로 브랜치 관리하기

부트캠프에서는 프로젝트를 진행할 때 STEP별 명세서를 받았다. 그래서 자연스레 브랜치 이름도 step1, step2... 등으로 네이밍했었다. 근데 직접 앱을 기획해보니 브랜치 이름을 어떻게 정할지 고민

applecider2020.tistory.com

 

오늘 느낀 점 

 

예전에  프로젝트 시 소스 트리로 브랜치 병합 고생했는데 git flow 이용 시에 프로젝트 시 분업화가 잘돼서 편할 거 같다.

 

중요도

git flow 사용 시 각자 브랜치를 적재적소에 이용하는 부분 구분하기   

'git' 카테고리의 다른 글

github  (0) 2022.12.15
shell command/vim 편집기 command  (2) 2022.12.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함