이번 시리즈는 총 3개의 시리즈로 이뤄져 있습니다.
1. git,git hub의 개념, 명령어, 설치와 가입 및 리포지토리를 생성하기
2. git, git hub 실습
3. git, github을 이용한 협업
그 중 이번 포스트는 git, github을 이용한 협업을 해보겠습니다.
조직 구성 및 개요
- gittest라는 협업하게 될 Repository를 Spidyweb가 생성
- repository는 public하며 open-source 협업을 기준으로 가정
- Spidyweb, nowayhome, homefromfar 3명이서 Organization을 이루어서 협업
- 모든 구성원이 owner가 되어 동등하게 프로젝트를 관리
- Spidyweb, nowayhome, homefromfar가 각각 gittestforcollaboration Repository를 fork하여 origin repository로 사용
- 기존의 gittesteam이 생성한 gittestforcollaboration repository는 upstream으로 지정
1. 조직 만들기
public으로 upstream이 될 repository를 만듭니다.
조직의 구성원을 초대해줍니다.
구성원들은 각자의 이메일 혹은 초대를 받은 곳에서 수락하여 조직에 가입합니다.
2. remote repository, local repository
fork
모든 유저는 gittestteam 조직에 속해있으며, gittestforcollaboration repository로 부터 fork한 상태입니다.
1. upstream은 gittestforcollaboration repository
2. origin은 각각의 유저가 gittestforcollaboration을 fork한 repository
clone
최초 commit은 readme.md 파일 생성 시 완료 되며, 각 유저가 local에 upstream repository를 clone한다.
git clone https://github.com/forgittestteam/gittestforcollaboration.git
원격 저장소 등록
여기서 원격저장소는 2개이다. upstream과 origin
위에서 언급한 것과 같이
upstream은 통상적으로 쓰이는 별칭으로, 여기서는 fork를 해올 수 있는 forgittestteam에서 만든 repository이다.
origin은 마찬가지로 통상적으로 쓰이는 별칭으로, 여기서는 forgittestteam에서 만든 repository를 fork 해온 user개개인이 소유한 원격 repository이다.
upstream 원격저장소 등록
origin 원격저장소 등록
git origin이 이미 등록되어 있다면,
git remote remove origin
후에 재 등록
다른 유저들도 마찬가지로 자신이 fork해온 repository는 origin으로 원격 저장소 등록,
fork를 해올 수 있는 gittestteam에서 만든 repository는 upstream으로 원격 저장소 등록
git add & commit & push
spidyweb가 branch gittest-01을 만들어 gittest.txt를 생성하고 내용 입력 후 add,commit 그리고 origin에 push를 합니다.
branch gittest-01생성
git add 를 통해 변경된 내용 stage에 올리기
commit하기
원격 저장소 origin에 gittest-01 branch push하기
origin repository에서 push 된 branch와 내용 확인하기
pull request & merge
이제 어느 유저가 push를 하게 되면 위의 사진과같이 compare & pull request가 나온다.
해당 버튼을 누르면,
reviewers에 유저들을 넣고 코드에 이상없는지, 해당 branch에서 commit된 작업들이 upstream과 merge되도 상관없는지에 대한 review를 듣습니다.
nowayhome이 branch를 하나 만들어서 spidyweb이 commit하여 push한 부분에 대해서 pull하여 검토합니다.
git pull https://github.com/Spidyweb-3588/gittestforcollaboration.git gittest-01
확인을 다 한 후에는 main branch로 이동하여 생성한 branch를 삭제합니다.
리뷰를 작성하고 승인합니다.
그렇게 모든 review가 끝나고 approved를 받으면,
merge pull request 버튼을 클릭하여 upstream에 해당 pull request의 commit 내용을 반영합니다.
이후 spidyweb의 gittest-01 branch는 삭제
origin 및 local에 최신코드,파일으로 반영 1번방법
1) local에 최신 코드 upstream으로부터 pull
2) local에 반영된 최신 코드를 origin으로 push
origin 및 local에 최신코드,파일으로 반영 2번방법
1) upstream으로 부터 fetch and merge로 origin 최신화
2) origin으로부터 pull하여 local 최신화
git pull origin main
이제 다른 유저들도 변경사항을 적용 시키려면
1) 각자의 local에서 branch를 만들어 작업
2) 각자의 origin repository에 push
3) pull request
4) pull request가 모든 구성원으로 부터 approved 되면 upstream에 merge pull request
5) origin 및 local branch를 삭제
6) origin과 local에 코드 최신화를 하여 반복작업
'DevOps > Git,Github' 카테고리의 다른 글
[git] fatal: Not a valid object name: 'master'. 오류 해결 (0) | 2021.11.26 |
---|---|
[git 오류 해결] ! [rejected] main -> main (non-fast-forward)오류 해결 (0) | 2021.11.26 |
[git,github] 2) git, github(깃,깃허브) 실습하기 (로컬 저장소, 원격 저장소에 저장 및 형상 관리 방법) (2) | 2021.10.26 |
[git,github] 1) git, github(깃,깃허브) 개념,명령어,다운로드, 가입 총 정리 (0) | 2021.04.02 |
댓글