github.com 프로젝트 참여
깃허브 오픈소스 프로젝트에 참여하기내용을 나에게 맞는 포멧으로 정리한 내용이다.
좀 더 정확한 내용과 실습을 위한 저장소는 해당 포스트에서 찾을 수 있다.
깃허브 Fork
https://github.com/ 에서 참여할 프로젝트를 선택후 Fork
버튼으로 해당 프로젝트와 동일한 자신의 저장소를 만든다.
깃허브 Clone
Clone으로 자신의 Local PC에 다운로드 한다.
git clone https://github.com/<user_name>/<repository_name>.git
깃허브 Issue
- 참여한 원본 프로젝트
Issue
탭에서Open
중인 issue를 확인한다. good first issue
태그가 있는 이슈는 처음 참여(컨트리뷰션)하기 좋다는 의미다.- issue를 선택한 후
Assignees
기능을 통해서 자신에게 해당 이슈를 배당(assign)한다.(혹은 issue에 본인을 assign한다.)
깃허브 Branch
-
대체로
master
가production
환경에서release
인 경우가 많기 때문에 작업(코딩)을 위해서 branch off를 한다.cd repository_name git branch feat/dev * master (END) #:q
개발자를 위한 feat/dev branch가 존재한다.
개발자를 위한 branch가 없다면 branch를 생성한다.------------------- feat/dev / ---*--------------------- master
-
feat/dev
를checkout
한다.git checkout -b feat/dev Switched to branch 'feat/dev' Your branch is up to date with 'origin/feat/dev'.
이 상태에서 작업을 하면 다른 개발자가 작성한 코드와 정리되지 않은채 충돌이 발생하기 쉽고, 대체로 충돌 문제를 해결하기 위한 노력은 기하급수적으로 늘어날 수 있다.
-
이제 자신의 프로젝트 관리를 위해서
<상위 브랜치>/<프로젝트>-<이슈넘버>
로 구성되는 branch를 만들어서 개발한다.git checkout -b feat/refact-1 Switched to a new branch 'feat/refact-1'
----------------- feat/refact-1 / *------------------- feat/dev / ---*--------------------- master
이제
feat/refact-1
에서 작업할 수 있다.
이제 다른 참여자와 분리되어 개발이 가능하므로commit
,push
를 원하는 만큼 마음대로 할 수 있다. -
commit 제목은 Issue제목으로
commit
한다.git commit -m "refact-1:write issue title"
-
remote
push
자신의 github 저장소에 branch가 push된다.git push --set-upstream origin feat/refact-1 Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 582 bytes | 582.00 KiB/s, done. Total 6 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. remote: remote: Create a pull request for 'feat/refact-1' on GitHub by visiting: remote: https://github.com/<user_name>/<repository_name>/pull/new/feat/refact-1 remote: To https://github.com/<user_name>/<repository_name>.git * [new branch] feat/refact-1 -> feat/refact-1 Branch 'feat/refact-1' set up to track remote branch 'feat/refact-1' from 'origin'.
github의 저장소엣 Branch를 확인하면 push한 내용을 확인 할 수 있다.
feat/dev feat/refact-1 * master
-
feat/refact-1
이feat/dev
브랜치에 합져지도록merge
요청한다.
프로젝트 관리자나, 리드 개발자에게Pull Request
를 요청한다.- github.com 저장소 상단
Compare & pull request
버튼을 선택한다. - 브랜치 오프(branch off)한 상위 branch
base: feat/dev
를 확인한다. - Pull Request 제목과, 내용을 적고 변경내용을 다시 한번 더 확인한다.
Pull Request 작성 방법은 프로젝트(오픈소스)마다 다르므로 확인후 진행한다. Create pull request
버튼으로 요청한다.---------* feat/refact-1 / \ #Pending review... *------------------- feat/dev / ---*--------------------- master
- github.com 저장소 상단
깃허브 Review
리뷰상태에서는 참여자가 할 수 있는 일은 없다.
버그나, 다른 어떤 이유로 Reject
을 당해도 걱정하지 마라.
이유 없이 Pull Request가 거부 당할 경우는 없고, 거부 사유가 있다면 그에 따라 수정하면 된다.
리뷰가 끝나면 프로젝트 관리자는 코드를 base에 merge하고, Pull Request를 닫는다.
--------* feat/refact-1
/ \
*------------*------ feat/dev
/
---*--------------------- master
'vcs > git' 카테고리의 다른 글
Remove file in All Commits (0) | 2021.12.16 |
---|---|
SVN과 Git 동기화 (0) | 2021.12.16 |
비트버킷 저장소 크기 줄이기 (1) | 2020.02.03 |
git reset, 복원 (0) | 2019.07.19 |
github.com 탈퇴, 재가입 (0) | 2019.02.21 |