Skip to content

Github Strategies

SeungHyun Hong edited this page Nov 23, 2023 · 4 revisions

🗂️ Folder Strategy

  • 상위 폴더를 각각 분야별로 나눕니다.
  • gitignore를 통합으로 관리합니다.
.
├── 📄 README.md
├── 📄 .gitignore
├── 📂 backend
│   └── 📄 ...
└── 📂 iOS
    └── 📄 ...

🤔 Branch Strategy

image.png

  • git flow를 사용합니다.

    • main: 배포 목적으로 사용하는 브랜치입니다.
    • release: 배포까지 필요한 기능을 완성한 뒤 안정화 작업을 거치는 브랜치입니다.
    • hotfixes: critical한 버그가 발생한 경우 사용하는 브랜치입니다. main에서 분리되는 특징이 있습니다.
    • develop: 개발 브랜치입니다. 모든 기능들이 한데 아울러 이 브랜치에 merge됩니다.
    • feature: 기능 브랜치입니다. develop으로부터 분리하여 기능을 구현한 뒤 merge합니다.
  • develop에서 feature를 분리할 때 feature/역할명/* 으로 작성합니다.

    • e.g. feature/ios/*, feature/be/*
  • feature를 분리할 때 Notion Task 번호로 브랜치를 작성합니다.

    • e.g. feature/ios/GWL-2, feature/be/GWL-124

🤝 Merge Strategy

feature에서 develop

  • squash merge를 사용합니다.
  • approve한 사람이 최소 2명 이상이어야 merge 가능합니다.

🥺 Commit Strategy

  • 커밋명은 아래와 같이 작성합니다.
<type>: Implement A from B
  • type은 아래와 같습니다.
Type Name Context
add 파일 추가나 폴더추가, 간단한 코드 추가
feat 새로운 기능에 대한 커밋
fix 버그 수정에 대한 커밋
build 빌드 관련 파일 수정 / 모듈 설치 또는 삭제에 대한 커밋
chore 그 외 자잘한 수정에 대한 커밋
ci ci관련 설정 수정에 대한 커밋
docs 문서(DocC 포함) 수정에 대한 커밋
rename 이름변경에 대한 커밋
refactor 코드 리팩토링에 대한 커밋
test 테스트 코드 수정에 대한 커밋
perf 성능 개선에 대한 커밋
move 디렉토리 변경 또는 파일 이동 (수정사항 ❌)
delete 파일, 폴더 삭제
Clone this wiki locally