2019. 07. 25
Jaewoo KIM
본격적으로 사용하기 앞서서 구성원들의 Git에 대한 숙련도 파악
반값문자 리뉴얼 프로젝트
프로젝트 소스코드 SVN에서 GIT으로 마이그레이션
반값문자 리뉴얼 프로젝트
master 브랜치를 기준으로 개인이름 브랜치로 분리하여 개발
반값문자 리뉴얼 프로젝트
Master 브랜치를 기준으로 기능 또는 티켓으로 브랜치로 분리하여 개발
반값문자 리뉴얼 프로젝트
브랜칭 작업을 규격화하여 브랜치를 쉽게 다룰수 있도록 해 주는 규칙
반값문자 리뉴얼 프로젝트
Text
git branch strategy
Git Flow 브랜치 모델을 사용하여 프로젝트 개발 진행
반값문자 리뉴얼 프로젝트
Devleop
feature/user-signup
feature/user-login
feature/common-layout
develop 브랜치를 기준으로 feature 브랜치를 생성하여 개발을 진행중
반값문자 리뉴얼 프로젝트
팀 또는 그룹간의 규칙을 정하고 실천해야 한다
프로젝트 관리하기
팀 또는 그룹간의 규칙을 정하고 실천해야 한다
프로젝트 관리하기
팀 또는 그룹간의 규칙을 정하고 실천해야 한다
프로젝트 관리하기
여러 모듈이 존재한다면?
팀 또는 그룹간의 규칙을 정하고 실천해야 한다
프로젝트 관리하기
좋은 커밋 메시지는 패치에 관한 세 가지 질문에 답을 할 수 있어야 한다
프로젝트 관리하기
좋은 커밋 메시지의 목적은 다음과 같다
프로젝트 관리하기
커밋을 할때 최소한 다음과 같은 것들은 지양하도록 한다
프로젝트 관리하기
비트버킷을 활용한 온라인 코드 리뷰 프로세스는 다음과 같다
프로젝트 관리하기
1. feature/{name} 브랜치 생성
2. 기능 개발 완료 후 develop 브랜치로 pull request
3. 리뷰어들의 코드리뷰 진행 및 승인/반려 처리
4. 리뷰 과정이 끝나면 develop에 merge
코드리뷰가 어느순간 부터 병목이 되었다
프로젝트 관리하기
1. feature/{name} 브랜치 생성
2. 기능 개발 완료 후 develop 브랜치로 pull resquest
3. 우선순위가 밀려 멤버들의 코드리뷰 진행이 미뤄짐
5. 멤버들이 승인하지 않았지만 develop에 merge
4. 리뷰 할 피처가 쌓이고 대기 시간이 길어짐
❗️ 일정 지연
코드리뷰 문화가 잘 자리잡히기 위해서는 멤버 모두가 노력해야 된다
프로젝트 관리하기
프로젝트 관리하기
프로젝트 관리하기
1. feature/{name} 브랜치 생성
2. 변경/추가 파일 add & commit
3. 원격지로 부터 fetch
4. 변경사항 merge 또는 rebase
일반적으로 Git을 이용한 기능개발은 다음과 같이 이뤄진다.
5. 원격지로 변경사항 push
프로젝트 관리하기
git checkout -b feature
git commit -am "Add new commit"
develop
feature
프로젝트 관리하기
git fetch
develop
feature
프로젝트 관리하기
git merge remote/develop
develop
feature
프로젝트 관리하기
git push origin feature
git request-pull
develop
프로젝트 관리하기
git fetch
develop
feature
프로젝트 관리하기
git rebase remote/develop
develop
feature
프로젝트 관리하기
git push origin feature
git request-pull
develop
프로젝트 관리하기
1. 디자이너의 결과물을 개발자에게 전달
2. 개발자는 변경된 파일을 붙여넣기
3. Commit & Push
4. 서비스 배포
appendix A: submodule
1. 디자인과 개발에 적용된 버전 차이 발생
2. 프로젝트 진행중 수정이 빈번하다면
불필요한 커밋 발생
appendix A: submodule
appendix A: submodule
appendix B: hooks
appendix B: hooks
커밋에서 변경이 발생한 파일에 대해서 린트 검사
appendix C: git-svn
appendix C: git-svn
Local
Remote
SVN
GIT
git svn dcommit
git svn rebase
git add
git commit
git branch
git stash