-
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