- 25Hour organization에서 프로젝트 원격 저장소(remote repository)를 생성하여 협업을 진행합니다.
- gitFlow 협업 전략을 실천합니다.
1. organization repository (공용 원격 저장소) 복제 후 로컬저장소를 생성하여 진행합니다.
2. develop branch에서 feature branch 를 생성해 담당 기능을 구현합니다. (1개 branch, 1개 function)
터미널 명령어 ( <> 는 구분하기 위해 작성했습니다. 터미널에 입력시 <>를 삭제하고 입력하세요)
git branch // 현재 위치한 브랜치 확인 (브랜치 목록 확인)
git branch <브랜치이름> // 브랜치 생성
git switch <브랜치이름> // 브랜치 이동 (checkout 도 가능)
------------------------------------------------------------------
* git checkout -b <브랜치 이름> // 브랜치 생성 후 이동
Bash
복사
예시)
develop 브랜치에서 feature/login 브랜치를 생성 해야함.
git branch <feature/login> // login 기능 구현 브랜치 생성
git git add .
git commit -m '커밋메세지' // 커밋 템플릿을 사용하지 않는 경우
git commit // 커밋 템플릿을 사용할 경우
git push --set-upstream origin <feature/login> // 브랜치 생성 후 최초 1번만 push
Bash
복사
3. 기능 구현 완료시 develop branch 로 PR & Merge 진행
4. 기능 구현이 완료된 feature branch는 삭제 (원격, 로컬 저장소 모두 삭제)
branch (feature branch)
•
브랜치명은 영어이름으로 쓰기
•
main : 서비스 최종 배포 되는 브랜치 *
•
develop : 다음 출시 버전을 개발하는 브랜치 *
•
feature : 기능을 개발하는 브랜치 *
본 프로젝트에서는 feature, develop branch 만 활용하여 버전을 관리하고자 합니다.
브랜치 작명시 → feature / 기능명_#이슈번호
ex) feature / Login_#이슈번호
Pull Request Convention
PR_TEMPLATE
예시사진)
commit message convention
헤더 (header) | 내용 |
feat | 새로운 기능추가 |
fix | 버그수정 |
docs | 문서 수정(파일 추가/수정/삭제, README 작성) |
test | 테스트 코드 추가 |
refact | 코드 리팩토링 |
style | 코드 의미에 영향을 주지 않는 변경사항(코드형식, 세미 콜론 추가) |
chore | 빌드 부분 혹은 패키지 매니저 수정사항 |
커밋 메시지 헤더
<type>: <summary>
│ │
│ └─⫸ 명령문, 현재 시제로 작성합니다. 마침표로 끝내지 않습니다.
| <수정된 페이지(회의록은 "minutes")/기능(또는 함수명, 작업내용 요약)>
│
│
│
└─⫸ Commit Type: feat|fix|docs|test|refac|style|chore|
<type>과 <summary> 영역은 필수입니다.
Plain Text
복사
git commit message template
################
# commit message Header
# <타입> : <제목> 의 형식으로 제목을 아래 공백줄에 작성
# 제목은 50자 이내 / 변경사항이 "무엇"인지 명확히 작성 / 끝에 마침표 금지
# 예) <feat> : 로그인 기능 추가
# 바로 아래 공백은 지우지 마세요 (제목과 본문의 분리를 위함)
################
# commit message Body
# 본문(구체적인 내용)을 아랫줄에 작성
# 여러 줄의 메시지를 작성할 땐 "-"로 구분 (한 줄은 72자 이내)
################
# commit message Footer
# 꼬릿말(footer)을 아랫줄에 작성 (현재 커밋과 관련된 이슈 번호 추가 등)
# 예) Close #7
################<type lsit>
# feat : 새로운 기능 추가
# fix : 버그 수정
# docs : 문서 수정(추가, 수정, 삭제)
# test : 테스트 코드 추가
# refact : 코드 리팩토링
# style : 코드 의미에 영향을 주지 않는 변경사항(ex.코드형식, 세미콜론 추가 )
# chore : 빌드 부분 혹은 패키지 매니저 수정사항
################
commit messane template 등록 순서
1.
로컬저장소 폴더 최상위에 .gitcommitmessage.txt 파일 생성
2.
.gitcommitmessage.txt 파일에 git commit mesaage template 내용 추가
3.
터미널(bash)에 명령어 git config --global commit.template .gitmessage.txt 입력
(지역변수에 해당 템플릿 등록)
4.
git config --list 입력 후 템플릿 등록되어있는지 확인.
5.
git commit → shift w+ i 입력 후 양식에 맞게 커밋 메세지 입력 → 메세지 입력 완료 했으면 ESC 눌러 편집종료 → :wq 눌러서 빠져나오기
6.
git push
1.
이슈 오픈(기능 구현, todo, 트러블슈팅 등등) * 이건 조원과 논의 필요
2.
작업할 브랜치 생성, 이동 (브랜치 생성할 때는 항상 develop 브랜치에서 생성하기)
git branch // 현재 브랜치 위치 확인
git switch develop // develop 브랜치 이동 후
git branch 브랜치명 // 브랜치 생성
git switch 브랜치명 // 브랜치 이동
* 수시로 내가 작업하고 있는 브랜치 위치 확인하기 (git branch)
* 해당 브랜치에서 변동사항 확인하기 (git status)
Bash
복사
3.
작업 후 commit & push
git git add .
git commit -m '커밋메세지' // 커밋 템플릿을 사용하지 않는 경우
git commit // 커밋 템플릿을 사용할 경우
git push --set-upstream origin 브랜치명 // 브랜치 생성 후 최초 1번만 push
Bash
복사
4.
작업 완료된 feature 브랜치를 develop 브랜치로 PR요청 및 Merge
5.
코드리뷰 및 피드백 진행 (coment 작성 또는 approve)
6.
원격 저장소 와 로컬 저장소 동기화
// 로컬 저장소에서 진행
git branch // 현재 브랜치 확인
git switch develop // develop 브랜치 이동
git pull // 원격 -> 로컬 저장소 동기화
Bash
복사
7.
기능 구현이 완료된 feature 브랜치 삭제 (원격, 로컬 둘다 삭제)
// 로컬에서 브랜치 삭제하기 명령어
git branch -d <로컬저장소 브랜치 이름>
// 원격에서 브랜치 삭제하기 명령어
git push origin --delete <원격저장소 브랜치 이름>
Bash
복사
* 이 과정을 프로젝트가 끝날때 까지 무한 반복한다.
* 이외 발생하는 conflict 는 그때 서치하여 해결하도록 하자~ 왠만하면 git hub가 다 해결해주더라~