
팀프로젝트를 진행하기 앞서 git 브랜치 전략을 정하고 문서화하는 과정입니다.
오류가 있는 부분은 댓글로 알려주시면 감사하겠습니다.
프로젝트를 진행하면서 스스로 발견하는 오류사항은 수정하면서 작업하려고 하고 있습니다.
명령어를 직접 작성하면서 익숙해지는 것을 목표로 하고있었기 때문에 git-bash에서 직접 명령어를 작성하도록 안내하였습니다.
git-flow 브랜치 전략을 사용한다.
type: 제목(50자 이내, 명령문, 끝에 마침표 X)
본문 (무엇과 왜를 설명, 72자 단위 줄바꿈 실시)
closed #이슈번호
feat: Add login API
사용자 로그인 API 추가.
비밀번호 암호화 적용.
closed #2
| 타입 이름 | 내용 |
|---|---|
| feat | 새로운 기능에 대한 커밋 |
| fix | 버그 수정에 대한 커밋 |
| build | 빌드 관련 파일 수정 / 모듈 설치 또는 삭제에 대한 커밋 |
| chore | 그 외 자잘한 수정에 대한 커밋 |
| ci | ci 관련 설정 수정에 대한 커밋 |
| docs | 문서 수정에 대한 커밋 |
| style | 코드 스타일 혹은 포맷 등에 관한 커밋 |
| refactor | 코드 리팩토링에 대한 커밋 |
| test | 테스트 코드 수정에 대한 커밋 |
| perf | 성능 개선에 대한 커밋 |
일련의 단계들을 이해하기 위해서
꼭 작업 흐름 단계별로 명령어와 함께 아래의 예시를 봐야됨.
# 자신의 계정으로 Fork 후 clone
# (브랜치 상관없음 — 클론한 직후)
git clone https://github.com/{내계정}/{레포지토리}.git
cd {레포지토리}
# (브랜치 상관없음)
# 원본(팀 Organization) 저장소를 upstream으로 추가
git remote add upstream https://github.com/{Organization}/{레포지토리}.git
# develop 브랜치로 전환
git checkout develop
git pull upstream develop
여기서부터 계속 반복
# 최신 develop 가져오기(작업 시작 전 필수임!)
git fetch upstream # upstream(Organization)의 최신 내용 가져오기
git checkout develop # develop 브랜치로 이동
git pull upstream develop # 최신 내용으로 갱신
# 기능 브랜치 생성(develop에서 분기)
git checkout -b feature/2-userinfo-api # 브랜치명 예시로 작성한 것
# (현재 브랜치: feature/2-userinfo-api)
git status # 변경 내용 확인
git add . # 변경 파일 모두 추가(선택적으로도 가능)
git commit # 규칙 준수
----------------------------------------
feat: Add login API
사용자 로그인 API 추가.
비밀번호 암호화 적용.
closed #2
----------------------------------------
# 본인 fork(origin)의 브랜치로 푸시
git push origin feature/2-userinfo-api
### PR 타입(하나 이상의 PR 타입을 작성해주세요)
- 기능 추가
- 기능 삭제
- 버그 수정
- 의존성, 환경 변수, 빌드 관련 코드 업데이트
### 반영 브랜치
ex) feat/9-userLogin-api -> develop
### 반영 사항
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다.
### 적용 화면(선택사항)
closed #이슈번호 

브랜치 이동과 삭제는 명령어 사용하지말고 UI에서 제공하는 메뉴를 이용해서 할 것
git fetch upstream
# develop 브랜치로 전환(git checkout develop)
git pull upstream develop # 최신 develop 동기화
# 브랜치 삭제 (로컬 & 원격)
# (develop 상태에서, 병합 완료된 feature 브랜치 삭제)
git branch -d feature/3-login-api
git push origin --delete feature/3-login-api
# 최신 develop으로 동기화
git fetch upstream
git checkout develop
git pull upstream develop
메뉴 이용해야되는 이유

window에서 인텔리제이에서 파일을 열고 있기 때문에 삭제하지 못하도록 lock을 걸고있기 때문에 당황할 수 있음(본인이 그랬음...)
인텔리자체 기능을 이용하는게 편함

git fetch upstream
git pull upstream develop # 최신 develop 동기화
