Posts [GitHub] Pull Request(PR) 보내는 방법 : Contribution 하기
Post
Cancel

[GitHub] Pull Request(PR) 보내는 방법 : Contribution 하기


Pull Request(PR) 보내는 방법 : Contribution 하기

GitHub 에서 원격 저장소에 Pull Request를 하여 코드 기여를 하는 방법을 알아보겠습니다.

PR(Pull Request)은 오픈소스 프로젝트에 참여할 때 가장 기본이 되는 동작이라고 할 수 있습니다.

step별로 자세히 적어 놓았으니 쉽게 따라오실 수 있을 거예요!!


1. 기여하려는 저장소를 fork 하기

  • 먼저, 기여하고자 하는 저장소를 나의 저장소로 fork 합니다.

  • 그 다음, fork한 저장소에 가봅니다. 정상적으로 fork가 되었습니다.


2. 내 컴퓨터에 저장소 Clone 하기

  • 이제 이 fork한 저장소를 git clone 해오겠습니다. git bash에서 아래 명령어를 입력해 주세요.
1
$ git clone https://github.com/YOUR_FORK_USERNAME/YOUR_FORK.git 
  • 저의 경우, https://github.com/ChanhuiSeok/Code-Test-Study.git 가 fork 한 저장소의 git 주소라면 아래와 같이 작성하는 것입니다.
1
$ git clone https://github.com/ChanhuiSeok/Code-Test-Study.git

3. 원격 저장소 Remote 설정하기

  • clone 해 온 저장소에 원격 저장소 설정을 합니다. 즉, 내가 PR을 보낼 곳을 추가해 주는 것입니다.
  • 원격 저장소의 이름은 upstream 으로 지정하겠습니다. 원격 저장소의 git 주소는 fork를 하기 전 원래의 저장소를 말합니다.
  • 이 작업은 추후에 fork 저장소를원격 저장소의 최신 커밋으로 내용을 변경해야 하므로 진행해야 합니다.
1
$ git remote add upstream https://github.com/ORIGIN_OWNER/ORIGIN_REPO.git

4. PR용 branch 생성하기

  • clone 해 온 저장소의 처음 branch는 기본적으로 master인데, 여기에 코드를 수정하고 PR을 보낼 용도로만 사용할 새로운 branch를 생성해야 합니다.
  • 아래 명령어에서 test 에는 원하는 branch명을 써주시면 됩니다.
1
$ git checkout -b test

5. 코드 수정하기

  • 위 명령어를 통해 branch가 만들어짐과 동시에 현재 branch도 새로 만든 것으로 변경됩니다.
  • 이제 지금 이 branch에 들어왔으니 오픈소스에서 기여할 부분을 수정합니다.
  • 코드 수정을 모두 완료했다면, git add & git commit 을 진행합니다.
1
2
$ git add .
$ git commit -m "커밋메시지는 프로젝트의 정해진 규칙이 있다면 그것에 맞게 작성해 주세요"

6. PR용 branch에 Push하기

  • 이 부분이 중요한데, 현재 들어와 있는 PR용 branch (저의 경우 test) 에 push를 해야 합니다.
  • test에는 여러분이 위에서 지정한 branch 명으로 바꿔서 아래 명령어를 실행하면 됩니다.
1
$ git push origin test

7. fork한 github 사이트에 들어가기

  • 이제 github 사이트에서 fork해온 나의 저장소에 들어가 봅니다.

위의 사진처럼 Compare & pull request 버튼이 활성화 된 것을 확인할 수 있습니다!

버튼을 눌러주시면,

이처럼 기여할 프로젝트에서 미리 설정된 Pull Request 양식이 뜹니다. 그러면 여기에 프로젝트의 양식과 규칙에 맞게 자신이 기여한 것들을 작성해 주시면 됩니다.

그 다음 Create pull request 버튼을 눌러서, 오픈소스 프로젝트에서 나의 PR이 승인되어 merge될 때 까지 기다립니다.


8. PR 승인이 되었다면 branch 삭제하기

내가 보낸 PR이 승인되어 메인 저장소에 merge 되었다면, 이제 위에서 생성한 PR용 branch는 작업이 끝났으니 삭제해도 됩니다.

다음과 같이 명령어로 지웁니다.

  • 다른 브랜치로 변경(checkout)한 후 아래 명령어 실행 (branch_name에는 삭제하려는 브랜치명 입력)
1
2
$ git branch -D branch_name
$ git push origin :branch_name (혹은 git push origin --delete branch_name)

각각 local과 remote branch를 삭제해 주는 명령어입니다.

git bash 에서 git branch 명령어로 확인할 수 있는 것이 local branch이고,

git branch -r 을 입력하여 나오는 브랜치 혹은 github 사이트에서 확인할 수 있는 branch를 remote branch 라고 생각하시면 됩니다.


🌠

코딩테스트 공부용 오픈 프로젝트를 생성하였습니다!

🔗 링크 : https://github.com/CodeTest-StudyGroup/Code-Test-Study

오늘 확인한 PR 보내는 법을 활용해서, 코딩테스트 문제를 풀고 프로젝트에 공부한 내용을 위의 방법을 활용해서 PR로 보내 주세요.

다같이 열심히 공부하는 느낌을 받을 수 있고, 마음을 다잡을 수 있으실 겁니다!


Google Analytics로 블로그 통계 확인하기(Google Anlytics, 네이버 애널리틱스)

GitHub에서 진행하는 코딩테스트 스터디그룹을 소개합니다!