코드 저장소

공부에는 끝이 없다!

Git

Git - Pull Request 사용해보기

VarcharC2K 2024. 1. 3. 12:04

이전 강의를 통하여 Fork에 대해서 알아보고 Fork를 직접 사용해 보았다.

Fork를 사용하는 이유는 앞서 설명했듯 오픈소스에 기여하고 싶거나 큰 틀에서 저장소 자체를 분기할 필요가 있을때, 원본을 보존하면서 자유롭게 코드를 수정하기 위함이다.

그런데 조금 더 생각해보면 오픈소스에 기여한려면 내가 코드를 다 구현한 후에 다시 원본 저장소에 Merge를 해야한다.

우리는 원본 저장소에 코드를 올릴 권한이 없는데 어떻게 해야할까?


Pull Request = 원본 저장소에 합쳐기

Git에서는 이런 상황을 위하여 Pull Request라는 기능을 제공한다.

쉽게 설명하면 내가 이런 기능을 만들었고 이런 수정사항이 있으니 이것을 원본에 Merge 시켜줘~ 라고 요청을 보내는 것이다.

엄밀히 말하면 Commit을 2개를 합치는 것이기 때문에 단일 저장소에서도 가능하며, 꼭 Fork한 저장소가 아니더라도 상관 없다.

 

일반적인 프로젝트를 할 떄, 코드를 함께 작성하는 팀원이 있다면 직접 Merge를 수행하지 않고 Pull Request를 통하여 진행하며 이렇게 하면 올린 Pull Request를 보며 코드를 리뷰할 수 있는 장점이 있다.

만일 수정이 필요한 경우 댓글을 달아서 Change Request를 보낼수도 있다.

 

또한, 오픈소스에 Pull Request를 보내는 경우에는 기여 안내문서를 반드시 참고하여 보내는 것이 좋다.

아마 다음과 같은 문서가 존재할 것이다.


 

Pull Request 보내보기

그럼 실제로 PR을 보내 보자.

Fork해온 저장소에 변경점이 생겼다면, GitHub에서 Contribute라는 목록에 PR이 생겼을 것이다.

 

Open Pull Request 버튼을 누르면 원본 저장소로 페이지가 이동하는데 이것은 우리가 원본 저장소에 PR을 보내는 것이기 때문이다.

Comparing changes 화면에서 전체적인 변경점을 확인 할 수 있다.

우선 왼편에는 Merge가 진행 될 base의 원격 저장소와 Branch를 선택할 수 있고 오른쪽에서는 우리가 PR을 보낸 복제된 저장소의 Branch를 선택 할 수 있다.

옆에 초록색으로 위와 같은 글귀가 나타난다면 정상적으로 merge가 진행될 수 있다는 의미지만 만약 빨간색으로 나타난다면 충돌이 발생한다는 말이기 때문에 Conflict를 해결하고 PR을 보내주어야 한다.

하단에는 현재 PR로 날아온 Commit의 갯수와 변경된 파일의 숫자, 기여자의 수가 보이고 그 밑에는 변경된 코드들을 실제로 살펴 볼 수 있다.

이상이 없다면 상단의 Create pull Request 버튼을 눌러 진행한다.

 

 

정상적으로 진행이 되었다면 다음과 같이 title과 description을 추가하는 화면이 나타날 것이다.

Title에는 내가 추가한 기능을 요약하여 적어주고 Description에 상세한 내역을 적거나 스크린 샷으로 찍어서 담아주면 코드 리뷰시에 도움이 된다.

 

 

모든 작업이 끝났다면 정상적으로 PR이 등록 된 것을 확인 할 수 있다.

(해당 PR은 보낸 사람이 아닌 원본 저장소에 등록된 다는 것을 헷갈리지 말자)

보낸 PR은 원본 저장소의 Owner가 확인 후 Merge하는 형식으로 진행되며, pull requests라는 탭에서 목록으로 확인이 가능하다.

우리는 등록된 것이 없기 때문에 텅 비어있을 것이다.

 

이렇게 Pull Request에 대해 알아보았다.

 

'Git' 카테고리의 다른 글

Git - Git의 여러가지 기능  (1) 2024.01.04
Git - Fork : 저장소 복제하기  (1) 2024.01.02
Git - 충돌과 충돌 해결 실습해보기  (1) 2023.12.30
Git - Merge와 Conflict  (0) 2023.12.29
GIT - Branch 나누기  (2) 2023.12.29