Git branch의 종류는 아래 다섯가지가 존재한다.
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
1. 팀장이 Repo를 생성한다.
2. 팀장이 본인의 로컬저장소에 클론을 해온다.
$ git clone <팀장 Repo url> $ cd <파일명> $ git branch
3. git flow를 이용해 작업 시작 $ git flow init
$ git flow init $ git branch <작업명> $ git status <상태 확인> $ git add <작업> $ git commit -m <커밋 내용>
4. 작업한 내용을 원격저장소에 push
$ git push -u origin develop
5. 팀원들에게 전달
1. 팀장의 해당 프로젝트의 github로 이동
2. fork를 이용해 전체 저장소 복제
3. fork한 개인 원격 저장소에서 개인 로컬저장소 생성.
$ git clone <가져온 레포 url> $ cd <파일명> $ git branch /* 브렌치는 아직 생성되지 않았다. */
4. issues작성
기능에 대한 issues 작성
# Task list - [ ] do fizz - [ ] do buzz - [ ] do fizzbuzz
5. $ git flow init을 통해 초기화
$ git flow init $ ls /* develop 파일들 생성 완료 */
6. 기능 개발 시작
$ git flow feature start <작업명> /* 작업 branch 생성 */ $ vi // 작업 후 // $ git status $ git add <작업> $ git commit -m <커밋 내용>
7. 기능 개발 닫기 & 개인 원격 저장소에 push
$ git flow featur finish do-fizzbuzz $ git push -u origin develop /* 첫 push. -u를 붙여진행 */
8. 팀장에게 pull request
🌠issues개발을 끝낼 때마다 해당하는 #1 (이슈넘버) 에 대한 해결사항을 Open a pull request 에 적어줘야 한다.
#를 눌러 해당 이슈를 자동 완성할 수 있다.
본인 것이기 때문에 바로 pull을 받으면 된다.
$ git pull origin develop
팀원들은 remote를 해야한다.
/* 확인 */ $ git remote $ git remote -v /* 팀장의 레포 url 등록 */ $ git remote add upstream\ $ git remote -v /* upstream 당겨오기 */ $ git fetch upstream develop $ git merge FETCH_HEAD
upstream 당겨오기방법 1. pull
방법 2. fetch <- 추천!
당겨서 해당 브랜치에 반영을 바로 하는 것이 아님
당겨서 FETCH_HEAD라는 임시 브랜치에 담아놓음
FETCH_HEAD에 담긴 후에는 원하는 부분만 당겨올수도 있고 전체를 당겨올 수도 있음.
(이 때 바로 당기게 되면 pull과 동일하게 동작한 것과 같다.)
Reference