# [GitHub] Pull Request(PR) 방법

myeonji·2022년 1월 17일
1

GitHub

목록 보기
2/3

GitHub에서 원격 저장소에 Pull Request를 하여 코드 기여하는 방법입니다.

이번에 협업으로 작업을 하기 위해 PR을 알아야 할 필요가 있어 정리를 해보겠습니다.

  1. 기여하고자 하는 저장소(타켓 프로젝트의 저장소)를 나의 저장소로 fork

  1. 내 컴퓨터(로컬)에 Fork한 저장소 Clone

    $ git clone https://github.com/[MY_FORK_USERNAME]/[MY_FORK].git

    [ ] 안에 넣으시면 됩니다!

    참고로, 이 주소는 내가 fork한 계정 저장소에서 clone or download 버튼을 눌렀을 때 나오는 url 입니다.

  1. 로컬 저장소에 원격 저장소 추가

    • 원격 저장소는 내가 PR을 보내야 하는 곳을 추가하는 것입니다.
    • 즉, fork를 하기 전 원래의 저장소를 말합니다.
    • 이 작업은 추후, fork한 저장소(로컬)를 원격 저장소의 최신 커밋 내역으로 바꿀 때 필요합니다.
    $ git remote add [remote_name] https://github.com/[ORIGIN_USERNAME]/[ORIGIN_REPOSITORY].git

    [remote_name] 부분에 본인이 원격 저장소 이름 만들어서 입력합니다.

    [ORIGIN_USERNAME] 부분은 fork하기 전 git 주소를 입력하면 됩니다.

    즉 위의 2번과 비교해보면,

    git 주소에서 [MY_FORK_USERNAME]와 [ORIGIN_USERNAME] 부분만 다를 것입니다.

  1. 자신의 로컬 컴퓨터에서 코드를 추가하는 작업은 branch 생성하여 진행

    • 기본은 master인데, PR을 보낼 용도로만 사용하는 새로운 branch를 생성합니다.
    • PR을 보낸 후, 승인이 되면 branch를 삭제합니다.
    $ git checkout -b [branch_name]
  1. 새로 생성한 branch에서 코드 수정

    • 수정한 후, add와 commit 을 진행합니다.
    $ git add .
    $ git commit -m "test 커밋 입니다."
  1. PR용 branch(새로 만든 branch)에 Push

    $ git push origin [branch_name]
  2. 본인 계정의 github 저장소에 들어와서 Compare & pull reqeust 버튼 누르기

  3. 메세지 작성 후 PR 생성

  4. PR이 승인 되고, Merge 이후 branch 삭제

    $ git checkout master // 현재 branch가 아닌 기본 master로 전환
    $ git branch -D branch_name
    $ git push origin :branch_name (혹은 git push origin --delete branch_name)

  5. 원격 저장소에서 최신 커밋 내역 가져오기 (fork한 저장소를 원래 저장소의 최신 커밋 내역으로 바꾸기)

    • $ git remote -v를 하고, 원격 저장소가 설정이 안되어있다면 먼저 원격 저장소를 설정해야 합니다. (3번에 나와있음)
    // update
    $ git pull origin master
    
    // Fork한 Repository에도 반영
    $ git push origin master
    $ git checkout master 
    $ git fetch upstream
    $ git merge upstream/master
    $ git push origin master

출처

https://chanhuiseok.github.io/posts/git-3/

0개의 댓글