ABOUT ME

Today
Yesterday
Total
  • Pull Request (PR) / 브랜치 네이밍 / 커밋 메세지 규칙
    그 외/Git 2024. 11. 12. 23:45

    Git이란?

    코드 버전을 관리하고 협업할 수 있도록 도와주는 코드 형상 관리 시스템(VCS)
    로컬에 전체 저장소 복사본을 보유하여 인터넷 연결 없이 작업이 가능
    기존의 중앙집중형 SVN과 다르게 분산형 버전 관리 시스템(DVCS)

     


     

    GitHub Pull Request (PR) 생성

    Pull Request(PR)는 특정 브랜치의 변경 사항을 코드 리뷰를 거쳐 main 브랜치에 병합

     

     

    1. 새 브랜치 생성

    main 브랜치에서 기능 구현이나 버그 수정을 위해 새 브랜치를 생성

    git checkout -b feature/new-feature

     

    2. 작업 후 커밋 및 푸시

    변경 내용을 작업한 후 커밋하고 원격 저장소에 푸시

    git add . git commit -m "Add new feature" git push origin feature/new-feature
     

    3. PR 생성

    GitHub에서 해당 브랜치의 Pull Request 버튼을 클릭 후, Base branch Compare branch 선택

    - Base는 병합할 브랜치 (예: main), Compare는 작업한 브랜치 (예: feature/new-feature)

     

     

    4. PR 제목 및 설명 작성

    • Title: PR 제목은 간결하고 핵심적으로 작성
    • Description: PR의 목적과 내용 (코드 변경의 이유, 주요 변경 사항, 관련 이슈 번호 등을 포함)
    • 리뷰어 및 라벨 지정 : 코드 검토를 요청할 리뷰어를 지정하고 bug fix, enhancement 같은 라벨을 추가해 PR의 성격 표시
    • PR 제출 : Create Pull request 버튼을 클릭하여 PR을 제출

     

    코드 리뷰 및 피드백

    PR이 생성되면, 리뷰어는 변경 내용을 검토하고, 코드에 피드백을 남길 수 있음.

    피드백을 통해 코드 수정이 필요한 경우 Request Changes로 요청할 수 있으며, 문제가 없다면 Approve로 승인

     

    PR 병합 방식

    • Create a merge commit : 별도의 커밋을 생성하여 병합 기록을 남김
    • Squash and merge : 여러 커밋을 하나의 커밋으로 합쳐 병합
    • Rebase and merge : 변경 사항을 순차적으로 병합하여 기록을 단순화

     


     

    브랜치 전략

     

    Git-Flow : 실무에서 자주 사용되는 Git 브랜치 전략

     

    주요 브랜치

    • master(main): 최종 배포 버전 브랜치
    • develop: 모든 기능이 합쳐지는 메인 개발 브랜치
    • feature: 새로운 기능 개발을 위한 브랜치 (ex: feature/로그인)
    • release: 배포 준비 중인 버전을 관리하는 브랜치 (ex: release-1.2)
    • hotfix: 배포된 버전에 긴급 수정이 필요할 때 사용하는 브랜치 (ex: hotfix-1.2.1)

     

    https://gmlwjd9405.github.io/2018/05/11/types-of-git-branch.html

     

     

    브랜치 네이밍

     

    1) main branch, develop branch

    main과 develop 브랜치는 본래 이름 그대로 사용하는 경우가 일반적

     

    2) feature branch

    • 어떤 이름도 가능 (단, master, develop, release-..., hotfix-... 같은 이름은 사용 불가)
    • feature/티켓번호_기능요약 (ex: feature/1_회원가입)

    3) release branch

    • release-RB_... 또는 release-... 또는 release/...같은 이름이 일반적
    • release/버전번호 (ex: release/1.0.0)

    4) hotfix branch

    • hotfix/버전번호_기능요약 (ex: hotfix/1.0.1_로그인_버그수정)

     


     

    커밋 메시지 예시

    [티켓번호] 티켓명 또는 기능명
    
    - 상세 내용 1
    - 상세 내용 2
    
    # 이슈번호

     

    커밋 타입

    feat 새로운 기능 추가
    fix 버그 수정
    docs 문서 수정 (예: README.md, 주석 등)
    style 코드 스타일이나 포맷 변경
    refactor 기능 변경 없이 코드 구조 개선
    perf 성능 개선
    test 테스트 코드 추가 또는 수정
    build 빌드 시스템 수정
    ci CI 설정 수정
    chore 기타 자잘한 수정
    revert 이전 커밋 되돌리기
     

     

    <브랜치 타입>/<이슈 번호 또는 작업 내용>

    feature 새로운 기능을 추가할 때 feature/43-login-feature
    fix 버그를 수정할 때 fix/105-navbar-bug
    hotfix 긴급하게 수정이 필요한 버그를 해결할 때 hotfix/checkout-error
    chore 코드 정리, 설정 변경 등 사소한 작업 시 chore/update-eslint-rules
    docs 문서 변경 시 (예: README 수정) docs/update-readme
    test 테스트 코드 추가나 수정 시 test/user-service-tests
    refactor 코드 리팩토링 작업 시 refactor/authentication-service
    ci CI/CD 설정 변경 시 ci/update-github-actions

     

    '그 외 > Git' 카테고리의 다른 글

    GitHub 이슈 템플릿  (0) 2024.11.11
Designed by Tistory.