본문 바로가기

카테고리 없음

PR ( Pull Request ) 보내기

PR은 Pull Request의 약자로 

보통 오픈소스 컨트리뷰트를 할때 가장많이 쓰인다.

지금은 PR보내는데에 큰 어려움은 없지만, 후에라도 오랜만에 보낼때를 대비해 PR하는 방법을 기록해놓겠다.

 

그전에 PR을 보내기 이전에 알아야 할 사항이 있어 설명하고 넘어가겠다. ( folk , clone ) 

 

1. Folk ( 원래 Repository -> 내 Git Repository )

기여하고자 하는 저장소를 통째로 가지고 오는 과정이다.

해당 저장소에 있는 모든것, 소스코드들을 내 깃허브 레포지토리로 가져오게된다. 어떠한 레포를 본 떠서 내 깃허브로 가져온다고 생각하면 된다. 

folk를 하는 방법은 매우간단하다

1) 본뜨고자 하는 깃 레포지토리에 들어간다 ( 웹사이트로 들어가야 한다 ) 

예시로 kingfisher의 레포를 참고했다.

2) 가장 오른쪽 에 있는 folk버튼을 누른다.

3) folk가 끝났다. 나의 깃허브 레포지토리에 들어가서 확인하면 해당 레포가 생긴것을 확인할 수 있다.

 

1. Clone ( 내 Repository -> 내 컴퓨터(local) )

folk해서 받아온 내 깃 레포를 내 컴퓨터로 가져오는 작업이다.

folk 나 clone이나 둘다 소스코드를 가지고 온다는 공통점이 있지만 

1. Folk ( 원래 Repository -> 내 Git Repository )
2. clone : 내 repository -> 내 컴퓨터

로 가져온다는 차이점이 있다.

 

처음엔 Folk랑 Clone이랑도 의미를 파악하는데도 어려웠는데 차이점도 구분하기가 힘들었어서 위에 그린 그림 기반으로 설명 해보면

위와같다.

clone을 하기위한 방법으로는 

1) 내 레포로 가서 

code 버튼을 누르면 나오는 창 

https 탭을 클릭해 url을 복사한다.

2) git clone [복사한 url] 을 입력한다.

3) clone 완료

 

 

그럼 이제 folk 와 clone을 통해 컨트리뷰트하고 싶은 저장소의 코드를 내 컴퓨터로 가져왔다.

이제 해당 소스코드에 고치고 싶은 부분이나, 추가하고싶은 부분을 추가하면 된다.

 

변경분에 대해 commit하고 push 하는 방법은 기존 레포에서 clone해서 작업하는 방식과 똑같다.

 

- 내 로컬 컴퓨터 -> 내 깃 레포지토리 

//add -> commit -> push 순으로 내 레포지토리에 변경분을 적용한다.

//add
git add . 또는 git add [추가할 파일]

//commit
git commit -m "커밋 메세지"

//push
git push origin [브랜치 이름]

변경분이 있을때마다 위와같은 과정으로 로컬 저장소에 푸시해주면 된다.

 

자 이제 이렇게 고치고 추가한 소스코드를 본래 저장소에 동기화시키고 싶다 라는 욕구가 들면 이제 Pull Request라는걸 해주면 된다.

 

Pull Request또한 하는법 자체는 매우 간단하다.

folk를 떠왔던 본래 레포지토리에 들어가면 변경분이 있다며 pull request를 하겠냐는 문구가 뜬다. 해당 버튼을 누르면 PR을 만들수 있게 된다.

아님 그런 버튼이 없다 한다면 해당 레포지토리에 3번째 탭인 Pull requests 에 들어가서 새로 만들 수 있다. 해당 탭을 클릭하면 이미 다른사람이 보내놓은 PR들 중 오픈되어있는게 있다면 조회할 수 있다.

 

가장 오른쪽에 있는 버튼들 중 ,초록색 버튼 New pull request 을 누르자

pull request 버튼을 누르면 보이는 화면

( 위쪽 빨간색 아이콘이 있는두 PR은 이전에 보내놓은 PR 이고 close된 PR이라 신경쓰지 말자 )

변경분이 없다면 위와같은 상태일거고, 변경분이 있다면 그동안 내 레포지토리에 푸시, 커밋했던 변경 사항들이 뜰것이다.

PR 제목을 적고, 설명란에 설명을 적고 create pull request 버튼을 누르자.

그러면 PR보내기가 끝이난것이고, 해당 레포의 개발자가 승인해주기를 기다리면 된다.

 

내가 보낸 PR이 승인나기 전까지는 원래 레포지토리의 pull request란에 계속 open되어 떠있을 것이다.

승인이 난다면 성공적으로 컨트리뷰트가 된 것이고, open된 PR이 사라져있을 것이다.

 

그 다음 포스팅으로는 PR보낸 후 머지에 관해 포스팅하겠다.