//////
Search
📄

깃허브 컨벤션(양지성)

gitHub organization 을 활용한 프로젝트(협업)진행
- 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가 다 해결해주더라~