ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • github.com 프로젝트 참여 - 정리 메모
    vcs/git 2020. 2. 13. 10:17

    github.com 프로젝트 참여

    깃허브 오픈소스 프로젝트에 참여하기내용을 나에게 맞는 포멧으로 정리한 내용이다.
    좀 더 정확한 내용과 실습을 위한 저장소는 해당 포스트에서 찾을 수 있다.

    깃허브 Fork

    https://github.com/ 에서 참여할 프로젝트를 선택후 Fork버튼으로 해당 프로젝트와 동일한 자신의 저장소를 만든다.

    깃허브 Clone

    Clone으로 자신의 Local PC에 다운로드 한다.

    git clone https://github.com/<user_name>/<repository_name>.git

    깃허브 Issue

    1. 참여한 원본 프로젝트 Issue탭에서 Open중인 issue를 확인한다.
    2. good first issue태그가 있는 이슈는 처음 참여(컨트리뷰션)하기 좋다는 의미다.
    3. issue를 선택한 후 Assignees기능을 통해서 자신에게 해당 이슈를 배당(assign)한다.(혹은 issue에 본인을 assign한다.)

    깃허브 Branch

    1. 대체로 masterproduction 환경에서 release 인 경우가 많기 때문에 작업(코딩)을 위해서 branch off를 한다.

       cd repository_name
       git branch
      
       feat/dev
       * master
       (END)  #:q

      개발자를 위한 feat/dev branch가 존재한다.
      개발자를 위한 branch가 없다면 branch를 생성한다.

             ------------------- feat/dev
           /
       ---*--------------------- master
    2. feat/devcheckout한다.

       git checkout -b feat/dev
       Switched to branch 'feat/dev'
       Your branch is up to date with 'origin/feat/dev'.

      이 상태에서 작업을 하면 다른 개발자가 작성한 코드와 정리되지 않은채 충돌이 발생하기 쉽고, 대체로 충돌 문제를 해결하기 위한 노력은 기하급수적으로 늘어날 수 있다.

    3. 이제 자신의 프로젝트 관리를 위해서 <상위 브랜치>/<프로젝트>-<이슈넘버>로 구성되는 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를 원하는 만큼 마음대로 할 수 있다.

    4. commit 제목은 Issue제목으로 commit한다.

       git commit -m "refact-1:write issue title"
    5. 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
    6. feat/refact-1feat/dev 브랜치에 합져지도록 merge요청한다.
      프로젝트 관리자나, 리드 개발자에게 Pull Request를 요청한다.

      1. github.com 저장소 상단 Compare & pull request버튼을 선택한다.
      2. 브랜치 오프(branch off)한 상위 branch base: feat/dev를 확인한다.
      3. Pull Request 제목과, 내용을 적고 변경내용을 다시 한번 더 확인한다.
        Pull Request 작성 방법은 프로젝트(오픈소스)마다 다르므로 확인후 진행한다.
      4. Create pull request 버튼으로 요청한다.
                ---------*       feat/refact-1
              /           \                        #Pending review...
             *------------------- feat/dev
            /
        ---*--------------------- master

    깃허브 Review

    리뷰상태에서는 참여자가 할 수 있는 일은 없다.
    버그나, 다른 어떤 이유로 Reject을 당해도 걱정하지 마라.
    이유 없이 Pull Request가 거부 당할 경우는 없고, 거부 사유가 있다면 그에 따라 수정하면 된다.
    리뷰가 끝나면 프로젝트 관리자는 코드를 base에 merge하고, Pull Request를 닫는다.

            --------*         feat/refact-1
          /          \
         *------------*------ feat/dev
        /
    ---*--------------------- master

    'vcs > git' 카테고리의 다른 글

    github.com 프로젝트 참여 - 정리 메모  (0) 2020.02.13
    비트버킷 저장소 크기 줄이기  (0) 2020.02.03
    git reset, 복원  (0) 2019.07.19
    github.com 탈퇴, 재가입  (0) 2019.02.21
    Git을 이용한 백업  (0) 2018.11.22
    Command Line Git Import  (0) 2018.03.02

    댓글 0

Designed by Tistory.