0. Git Flow
•
프로젝트 규모가 크지 않으므로 3개의 브랜치를 사용한다.
◦
main : 배포만을 위한 브랜치(언제나 실행가능한 상태!)
◦
develop : 다음 출시 버전 위해 개발만을 위한 브랜치
◦
feature : 기능을 개발하는 브랜치
▪
브랜치명 규칙 : feat/#이슈번호 or feat/login/#이슈번호
▪
예) feat/#1 or feat/login/#1
0-2. 커밋 컨벤션
•
커밋 메시지는 [타입] 주제 #이슈번호와 같이 작성한다. [타입] 뒤에 띄어쓰기 한 후에, 작성할 것!
◦
예) [add] ListView에 빠진 문구 추가 #2
•
타입의 종류
◦
◦
◦
◦
◦
◦
add: 폴더, 파일 등을 추가한 경우
◦
◦
rename: 폴더명, 파일명 등을 수정한 경우
◦
◦
assets: 에셋을 추가, 수정한 경우
◦
◦
chore: 위의 모든 경우에 포함되지 않는 기타 수정사항
•
타입은 종류 중 하나만 선택하며, 영어 소문자로 시작한다.
•
주제는 한글로 간단명료하게 작성한다.
•
주제의 마지막 문자로 .(마침표)를 사용하지 않는다.
•
주제는 '-다', '-음'과 같은 어미로 끝내지 않고, 과거형을 사용하지 않는다.
◦
올바르지 않은 예) [feat]: 이메일 회원가입 기능을 추가했다 #2, [feat] 이메일 회원가입 기능을 추가함 #3
◦
옳은 예) [feat] 이메일 회원가입 기능 추가 #3
•
주제는 소스 코드를 보지 않고도 변경 사항이 무엇인지 알 수 있도록 작성해야 한다.
◦
올바르지 않은 예) [design] CSS 수정 (#3)
◦
옳은 예) [design] button에 border 추가 및 padding 수정 (#3)
•
커밋 메시지는 제삼자가 봤을 때 무엇을 했는지 파악할 수 있게 자세히 작성한다.
•
커밋 메시지는 어떻게 보단 무엇과 왜를 설명한다.
•
한 커밋에는 한 가지 기능만 담는다.
◦
예) 화면 개발의 경우 : 컴포넌트 단위로 커밋
◦
예2) 기능 개발의 경우 : 각 기능 단위로 커밋
1. 작업 전! 이슈 생성 및 상태 변경
1-1. GitHub 페이지에서 이슈 생성
1.
Title
•
[타입] 작업할 주제
•
예시: [feat] 이메일 회원가입 기능 추가
2.
Content
•
아래 이슈 템플릿을 사용하여 작성한다.
## 작업할 내용
- 이메일 회원가입 기능 추가 합니다.
## 구현 방법 및 예상 결과
- 마크업 추가
- API 연동
## 특이사항
- 없음
Plain Text
복사
이슈 템플릿
3.
Asignees 설정
4.
1-2. 프로젝트에서 상태 변경
1.
2. 브랜치 생성 및 작업
1.
develop 브랜치로 이동(checkout)
•
브랜치 이동 후, 꼭 pull 하기
# develop 브랜치로 이동
git checkout develop
# pull
git pull
Bash
복사
2.
기능에 따라 feat 브랜치 생성 (develop 브랜치에서 생성해야함)
# 1-1. 브랜치 생성 (예ㅣ feat/join/#3 이라는 브랜치 생성)
git branch feat/join/#3
# 1-2. feat/join/#3 브랜치로 이동
git branch checkout feat/join/#3
Bash
복사
3.
작업 후 commit
•
해당 브랜치에서 작업 후, 커밋 메시지 컨벤션에 따라 커밋
3. Push 및 PR
1.
작업 후 push
# 리모트 브랜치로 처음 push 할 경우
git push --set-upstream origin feat/join/#3
# 처음 push가 아닌 경우
git push
Bash
복사
2.
•
feature 브랜치(작업 브랜치: feat/join/#3)에서 develop 브랜치로 PR 생성
•
Title
◦
이슈 타이틀과 동일하게 작성하며 끝에 해당 이슈번호를 붙인다.
◦
[타입] 작업할 주제 #이슈번호
◦
예시: [feat] 이메일 회원가입 기능 추가 #3
•
Contents
•
Assignees
◦
본인으로 설정
•
Labels
◦
타입에 맞는 Label 선택
•
PR 템플릿 사용하여 작성한다.
## 코드 생성 및 수정 이유
- [x] 기능 추가
- [ ] 기능 삭제
- [ ] 버그 수정
- [ ] 폴더, 파일 등 업로드
- [ ] 의존성, 환경 변수, 빌드 관련 코드 업데이트
## 변경 사항
- src 폴더 및 파일 생성
- 해당 폴더 내 더미 파일 삭제
## 이슈 번호
closed: #3
Bash
복사
PR Template
4. 브랜치 삭제
1.
작업 완료한 브랜치는 삭제한다.
# develop 브랜치로 이동 후,
git checkout develop
# 로컬 브랜치 삭제
git branch -d <로컬 브랜치 이름>
# Merge 후, PR 페이지에서 삭제 안했을 경우, 리모트 브랜치 삭제
git push origin --delete <로컬 브랜치 이름>
Bash
복사