협업, Pull Request
오픈소스 프로젝트는 물론 많은 사람들과 협업을 하는 경우 아래와 같은 형태로 많이 운영 된다.
정해진 사용자만 Main Repository에 Merge가 가능하다. ( 관리자 )
- 일반 개발자는 자신이 Fork한 Repository에서만 Push가 가능하다.
각 개발자는 자신의 개인 Repository에서 개발 후 Pull Request를 통해 Merge를 관리자에게 요청한다.
기초 작업
Fork Repository
Origin Remote와 내 Repository에 있는 저장소 Remote 2개를 설정.
- Main Repository를 Upstream
- 내 Resository는 자신 마음대로, myrepos라고 지정.
작업 브랜치 생성 및 개발 작업
브랜치 생성 전 upstream의 최신으로 업데이트하는 것이 좋다.
git pull upstream
- fetch이후 자동으로 merge, 여기서 confict나면 수정 후 다시 pull
수정할 사항 branch생성, branch 명명 -> 이슈 ID 또는 이슈 ID + 이유
git checkout -b abcdproject-123 (또는abcdproject-123-login)
브랜치를 생성할 때는 항상 upstream의 브랜치를 지정
- git checkout -b abcdproject-123 upstream/abcdproject-123
Stash
브랜치 수정 중 새로운 브랜치에 대한 수정이 우선 수행 되야 하는 경우
현재 코드를 Commit을 하고 가는게 가장 좋은 방법이나, 불완전한 코드를 Commit하여 log가 쌓이고 하나의 이슈에는 하나의 Commit Log가 기본적으로 된다.
git stash를 이용하여 현재 코드를 안전하게 임시 저장. stash가 branch별로 저장되기 떄문에 임시 저장 기능이라고 한다.
branch에서 작업하다가 git stash 하면 끝.
- 작업할 branch로 돌아가 작업 후 돌아와서 git status를 하면 아무런 변화가 없는 branch를 생성했을 때와 동일하게 나오는데 git stash pop 을 수행 하게 되면 작업했던 임시 저장 내용이 복원된다
Push
개인 Github에 Push
- 로컬 작업은 끝내고 난뒤 -> 원본 레파지토리에 보내야 하나 권한이 없다.
- push 권한이 있는 fork한 본인 계정 Github로 Push
push를 이용하여 본인 fork 레파지토리에 업로드, 최종목적지 원본 프로젝트 레파지토리로 보내야 한다. Pull Request를 생성하여 요청을 보낸다.
브랜치를 선택하거나 찾아 들어가게 되면 new pull request라는 버튼이 생기는데 파일 비교하여 정상이면 Pull Request 내용을 작성한 후 Create Pull Request 수행.
'STUDY > Git' 카테고리의 다른 글
Git_Remote (0) | 2018.09.11 |
---|---|
Git_Stash (0) | 2018.08.23 |
Git Branch (0) | 2018.08.22 |
Git 기초, Git이란? (0) | 2018.08.22 |