Git - git을 이용한 협업
- PM과 팀원들이 깃허브를 통해 개발 협업을 진행 할 때,
- 로컬저장소 develop 브런치와 원격저장소 develop 브런치 사이에서 push와 pull을 사용하여 협업을 진행하게 된다.
- 아래와 같이 PM과 팀원 간 협업 절차를 간략하게 나타내보았다.
PM 1) 깃허브 organization 생성
- 여기서 New organization 클릭 > Organization name : wps-blog > Create organization
PM 2) 팀원 초대
- 함께 프로젝트 진행할 팀원 초대 및 권한 설정(read -> write)
PM 3) 깃허브 new repository 생성
blogproject
PM 4) 깃허브 repository 경로 복사
https://github.com/wps-shk/blogproject.git
PM 5) 생성한 repository에 업로드할 디렉토리 경로로 이동
$ cd blog_project(디렉토리 명)
PM 6) git init
해당 디렉토리에 git 초기화
PM 7) git flow init
- 대표 branch 모델인 git flow를 이용한 초기화(기본값으로 설정 시, 모두 enter)
- git flow 다운로드 : https://github.com/nvie/gitflow
PM 8) git remote add [원격저장소 명] [repository 경로]
- 생성한 repostiory 경로(원격 저장소)를 origin으로 명명
ex) git remote add origin https://github.com/wps-shk/blogproject.git
PM 9) git add [변경된 파일]
- 변경본 반영 리스트 작성
ex) git add -A (현재 디렉토리에서 변경한 모든 파일 추가)
PM 10) git commit
- 로컬 저장소에 변경 사항 반영
ex) git commit -m '변경 내용 description'
PM 11) git push [원격저장소 명] develop
- 원격저장소에 develop branch에 있는 내용 push
ex) git push origin develop
팀원 1) git pull [원격저장소 경로] [로컬 브런치 명]
- 원격저장소에 있는 파일을 내 로컬 브런치로 pull(fetch + merge)
ex) git pull https://github.com/wps-shk/blogproject.git
- 'fatal: refusing to merge unrelated histories' 에러 발생 시, 아래와 같이 명령어 실행
1
$ git pull origin[원격 저장소] develop --allow-unrelated-histories
PM 12) git flow feature start [브런치 명]
- git flow 명령어를 이용한 feature branch 생성
ex) git flow feature start models
PM 13) git add [변경된 파일]
- 변경본 반영 리스트 작성
ex) git add -A
PM 14) git commit
- 로컬 저장소에 변경 사항 반영
ex) git commit -m '변경 내용 description'
PM 15) git push [원격저장소 명] [브런치 명]
- 해당 브런치에 반영된 변경내용을 원격저장소에 push
ex) git push origin feature/model
PM 16) 원격저장소 develop에 pull request
- 원격저장소에 push 이후, 깃허브에 pull request 진행
(compare: develop -> base: develop)
팀원 2) 팀원이 pull request 승인
- 깃허브에서 pull request 승인
PM 17) git flow feature finish [브런치 명]
- push 한 브런치 삭제
ex) git flow feature finish feature/model
-> 자동으로 로컬저장소 develop 브런치에 merge되고 삭제
팀원 3) git pull [원격저장소 주소]
- 팀원이 원격저장소의 develop 브런치 내용 pull로 fetch + merge 진행
ex) git pull https://github.com/wps-shk/blogproject.git
팀원 4) git flow feature start [브런치 명]
- 로컬저장소에 feature 브런치 새로 생성
ex) git flow feature start views
팀원 5) git add [변경된 파일]
- 변경본 반영 리스트 작성
ex) git add -A (변경한 모든 파일 추가)
팀원 6) git commit
- 로컬 저장소에 변경 사항 반영
ex) git commit -m '변경 내용 description'
팀원 7) git push [원격저장소 명] [push할 브런치]
- 원격저장소 develop 브런치에 feature/views 브런치 push
ex) git push origin feature/views
팀원 8) 원격저장소 develop에 pull request 진행 및 승인
- PM에게 pull request 진행 및 승인
(compare: develop -> base: develop)
팀원 9) git flow feature finish [브런치 명]
- push 진행한 feature/views 브런치 삭제 및 develop에 merge
ex) git flow feature finish views
PM 18) 원격저장소 develop 브런치 pull
- 로컬저장소 develop 브런치에서 최근에 merge된 원격저장소 develop 브런치 pull
ex) git pull https://github.com/wps-shk/blogproject.git
앞서 설명한 절차 반복
Posted
tags:
{ Git }