/////
Search

Git Flow

0. Git Flow

프로젝트 규모가 크지 않으므로 3개의 브랜치를 사용한다.
main : 배포만을 위한 브랜치(언제나 실행가능한 상태!)
develop : 다음 출시 버전 위해 개발만을 위한 브랜치
feature : 기능을 개발하는 브랜치
브랜치명 규칙 : feat/#이슈번호 or feat/login/#이슈번호
예) feat/#1 or feat/login/#1

0-2. 커밋 컨벤션

커밋 메시지는 [타입] 주제 #이슈번호와 같이 작성한다. [타입] 뒤에 띄어쓰기 한 후에, 작성할 것!
예) [add] ListView에 빠진 문구 추가 #2
타입의 종류
 fix: 올바르지 않은 동작을 고친 경우 ⇒ 버그 수정
 feat: 새로운 기능을 추가한 경우 ⇒ 새 기능
 refactor: 내부 로직은 변경하지 않고 코드를 개선한 경우 ⇒ 코드 리팩토링
 style: 코드 개선과 상관없이 사소하게 코드를 수정한 경우 ⇒ 코드 구조 및 형태 개선
 (마크업) or (css) design: 사용자 UI를 추가, 수정한 경우 (마크업, 퍼블리싱 작업)
add: 폴더, 파일 등을 추가한 경우
 move: 폴더, 파일, 코드 등의 위치를 이동한 경우 ⇒ 리소스 이동, 이름 변경
rename: 폴더명, 파일명 등을 수정한 경우
 remove: 폴더, 파일, 코드 등을 삭제한 경우 ⇒ 코드 및 파일 삭제
assets: 에셋을 추가, 수정한 경우
 docs: 문서를 추가, 수정한 경우 ⇒ 문서 추가 및 수정
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.
Lables
타입 종류에 맞는 라벨을 선택한다.

1-2. 프로젝트에서 상태 변경

1.
프로젝트로 이동해서, 해당 이슈를 in Progress 로 이동한다.

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.
GitHub Pull Request 페이지에 가서 PR 생성
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
복사