Git 관리 전략

양재혁(Jaehyuk-Yang)·2023년 7월 13일
0

Git 관리 전략

  • 기본

    • 하나의 중심 branch로만 관리하는 것은 trunk

    • 거기서 필요할 때만 branch를 분기하는 것은 trunk based flow

  • Git Flow

    • 전체적인 merge 순서

      • feature -> develop -> release -> master
    • master

      • 소비자가 사용하는 제품이 존재하는 branch
    • hotfix

      • 배포된 서비스에 대한 긴급 버그 수정을 진행하는 branch

      • hotfix 브랜치는 만들 때 hotfix-* (hotfix-1) 과 같은 형태로 이름을 지정

    • develop

      • 개발 단계 코드가 있는 branch
  • 유용한 점

    • 큰 규모의 팀

    • 퀄리티 보장이 중요한 프로젝트

    • release 된 product에 대한 관리 사이클이 긴 경우

  • Github Flow

    • master

      • 소비자가 사용하는 제품이 존재하는 branch
    • feature

      • 특정한 기능을 구현하는 branch
    • 유용한 점

      • 작은 규모의 팀

      • release 된 product에 대한 관리 사이클이 짧은 경우 (업데이트 주기가 짧은 경우)

      • 빠른 배포와 관리가 필요한 경우

  • Gitlab Flow

    • production

      • 소비자가 사용하는 제품이 존재하는 (배포될 코드가 있는) branch
    • pre-production

      • 배포 전에 제품을 테스트 (QA, 품질검사) 하는 branch
    • master

      • 소비자가 사용하는 제품이 존재하는 branch
    • feature

      • 특정한 기능을 구현하는 branch
  • commit message 규칙

    • 제목과 본문은 한 줄을 띄워서 작성

    • 제목은 영문 기준 50자 이내로 작성

    • 제목 첫글자는 무조건 대문자로 작성

    • 제목 끝에 마침표(.)는 찍지 않음

    • 제목은 개조식 (영어라면 명령문) 으로 작성(Update code, Fix bug 등으로만 작성, 만약에 한글로 작성한다면 ‘abc 함수 수정’ 과 같은 식으로)

    • 본문은 영문 기준 72자마다 줄바꿈

    • 본문은 무엇을, 에 맞춰서 작성


Git 사용 팁

  • git pull 시 발생하는 에러 해결하기

    • 에러

    • 발생 이유

      • local 내 branch 상태와 원격 branch 상태가 다르기 때문
    • 해결 방법

    $ git pull origin main --no-ff
  • .gitignore 로 key 파일 제외하기

    • .gitignore 개념

      • 암호키와 같이 따로 버전 관리를 하지 못하도록 해야하는 폴더나 파일을 정의한 파일
    • 암호키를 .gitignore 에 정의하지 않고 push한 경우

    $ git rm -r --cached
profile
Frontend developer

0개의 댓글