-
Notifications
You must be signed in to change notification settings - Fork 0
Git Convention
Kuesung Park edited this page Feb 18, 2024
·
12 revisions
GitHub Flow는 소프트웨어 개발 프로세스를 간단하고 명확하게 유지하는 데 도움을 줍니다. 이 전략의 핵심은 기능 개발, 버그 수정, 또는 실험적 시도를 위한 브랜치를 master
브랜치로부터 분기하여 사용하고, 완료되면 다시 master
에 병합하는 것입니다.
-
master
브랜치는 항상 배포 가능한 상태를 유지합니다. - 새로운 기능, 버그 수정, 실험적 변경 사항 등은 항상
develop
브랜치로부터 분기된 별도의 브랜치에서 작업합니다. - 작업을 완료하고 배포 준비가 되면, Pull Request(PR)를 통해
develop
브랜치로 병합 요청을 합니다. - 만약
master
에 다른 변경 사항이 생겼을 경우,rebase
를 통해 최신 상태로 유지합니다. -
develop
로 병합할 때는Squash and Merge
를 사용합니다. -
master
로 병합할 때는Rebase and Merge
를 사용합니다.
-
브랜치 생성:
develop
브랜치에서feature/
,fix/
등의 접두사를 사용하여 브랜치를 생성합니다. 예:feature/new-login
- 개발 및 커밋: 작업 브랜치에서 변경 사항을 개발하고 커밋합니다.
-
Pull Request 생성: 작업이 완료되면, 작업 브랜치에서
develop
브랜치로 PR을 생성합니다. - 코드 리뷰 및 테스트: 동료의 코드 리뷰와 자동 테스트를 거칩니다.
-
병합 및 배포: 모든 검토와 테스트를 통과하면,
master
브랜치에 병합하고 배포합니다.
좋은 커밋 메시지는 변경 사항을 이해하는 데 큰 도움이 됩니다. 다음은 커밋 메시지 작성 가이드라인입니다.
커밋 메시지는 크게 제목, body(선택 사항), 그리고 footer(선택 사항)으로 구성됩니다.
<type>: <subject>
<body>
<footer>
-
제목:
- 50자를 넘지 않도록 합니다.
-
master
에서 분기한 브랜치에서 작업한 경우, 커밋 제목은 명령어로 작성합니다.- 예 :
feat : 새로운 기능을 추가한다
- type은
feat
,fix
,refactor
,style
,docs
,test
,chore
등으로 작성한다.
- 예 :
-
master
에 병합할 때Squash and Merge
로 생성되는 커밋은 명령어가 아닌 키워드 위주로 작성한다.- 예 :
Feature : 새로운 기능을 추가한다
- type은
Feature
,Fix
,Refactor
,Style
,Docs
,Test
,Chore
등으로 작성한다.
- 예 :
-
body:
- 선택 사항이지만, 변경 사항을 자세히 설명할 필요가 있을 때 사용합니다.
- 어떻게보다는 무엇을, 왜 변경했는지 설명합니다.
- 한 줄에 72자를 넘지 않도록 합니다.
-
footer:
- 이슈 트래커 ID 또는 Pull Request 번호와 같은 추가 정보를 제공합니다.
-
master
에서 분기한 브랜치에서 작업한 경우feat : 새로운 기능을 추가한다 새로운 기능을 추가한다. 이 기능은 사용자가 로그인한 후에 새로운 페이지로 이동할 수 있게 해준다. Resolves #123
-
master
에 병합할 때Squash and Merge
로 생성되는 커밋Feature : 새로운 기능 추가 // 분기한 브랜치에서 작업한 commit message 내용
- Commit 은 가급적이면 기능 당 하나의 커밋을 사용한다.
- Commit 메시지는 반드시 한글로 작성하며, 너무 길어지지 않도록 최대한 간결하게 작성한다.
- Commit 메시지에 마침표를 사용하지 않는다.
-
husky
를 이용한 pre-commit 을 사용한다. -
master
과develop
브랜치에force-push
를 금지한다. (레포 설정)