프로그래밍 지식/Git

[Git 협업] Pull Request

홍수성찬 2023. 5. 30. 11:50

협업을 위해 여러 기능 및 명령어를 지금까지 학습했다. Commit을 통해 버전 관리를 하는 방법을 배웠고, Branch를 통해 새로운 기능 구현이나 Debug 시 독립된 환경에서 작업을 진행하는 방법을 배웠다.

이번 시간에는 내가 적용한 코드를 바로 원격 저장소에 올리기 전 팀원들과 이야기를 나눌 수 있는 방법을 학습하려고 한다. 조금 더 완성된 프로젝트를 만들 수 있고 다른 팀원들과 이야기를 나눌 수 있는 기능인 "Pull Request"에 대해 학습하기로 하자.

 

Pull Request

프로그램을 개발하고 반영하는 일련의 과정들을 겪으면서, 개발을 할 준비가 된 것 같을 때, "Master Branch"에 질서 정연하게 "Push"만 하면 될까? 본인이 만든 내용들이 잘 작동하지 않거나 한 번 검토가 필요할 때 바로 번영하기에 겁이 나지 않을까? 그렇다면 어떻게 하면 좋을까?

 

바로 "Pull Request(PR)"을 활용하면 된다. "Pull Request(PR)"은 직접 Master Branch에 Push하는 것이 아닌 Master Branch로부터 새로운 브랜치를 만든 다음에 개발 내역을 해당 브랜치에 적용하고, 그 내용이 Master에 반영되기 전 검토를 해달라는 요청을 보내어 팀원들과 리뷰를 마친 후 반영하는 방식이다. 그 과정이 아주 엄격하게 관리가 될 수도 있고, 아니면 간단한 리뷰를 통해서도 가능하다.

 

우선, "Pull Request(PR)"을 하기 위해서 새로운 브랜치를 생성한다. Git Graph의 "Create Branch"를 사용해도 되고 "$ git branch 브랜치명"을 사용해도 된다.

 

이제는 생성한 브랜치로 Checkout을 해서 Push를 하면 해당 브랜치 이름에 작성한 파일들이 저장될 것이다.

 

Pull Request 하기

새로 생성한 브랜치에 Push를 하게 되면, 해당 Repository로 접속하여 확인하게 됐을 때, 위 처럼 "Compare & pull request" 버튼이 있는 것을 확인할 수 있다. 만약, 이 때 "Master Branch"에 병합하기 전, 확인을 받고 싶을 때, 저 버튼을 눌러서 의견을 요청할 수 있는 "Pull Request" 기능을 활용할 수 있다.

 

Pull Request 활용 방법

위 이미지를 보면, "base: master <- compare: feature/login"의 의미는 "feature/login"의 브랜치를 "master"브랜치에 병합해 달라는 의미이다.

 

그리고, "Pull Request"의 제목과 내용을 작성하고, "Create pull request" 버튼을 클릭하면 요청이 완료가 된다.

Pull Request 요청

이렇게 활용하면, 코드 리뷰도 가능하게 된다.

만약에 새로운 작업을 하고 나서 다시 한 번 더 "Push"를 했다고 가정해보자.

 

다시 한 번 더 Push

 

그렇다면, Repository에 요청한 Pull Request에 어떤 변화가 일어날까?

Push 후 Pull Request 변화

위에서 보이듯이, 자동으로 Pull Request에 새롭게 Push한 내용이 추가가 된다. 기존 'login 1'과 새로 Push해서 추가된 'login 2'가 보이는 것을 확인할 수 있다.

 

Commit 내역 확인

 

지금까지 Commit하고 Push한 내역들을 확인하고 싶다면, "Commits" 탭을 클릭해서 확인할 수 있다.

파일 내 코드 변화 확인

그리고 "Files changed" 탭에 들어가게 되면, 파일에서 수정이 일어난 부분을 확인할 수 있다. 그리고 위의 이미지에서 보이는 파란색 + 버튼을 클릭하게 되면, 그 부분에 의견을 작성할 수 있게 된다.

Comment 달기

위의 이미지를 예시로, "R3"에 파란색 + 버튼을 클릭하면, 코멘트를 작성할 수 있는 부분이 생기고 작성이 완료되었따면 "add single comment"를 클릭하면 마치 댓글처럼 의견을 작성할 수 있다.

 

Conversation에서 의견 작성 확인

그리고 나서, "Conversation" 탭으로 들어가게 되면 의견을 작성한 부분이 나타나는 것을 확인할 수 있다. 그리고 해당 의견에 답변을 작성하고 싶다면, 의견 아래에 "reply..." 란에 의견을 작성하면 된다.

 

새로운 작업 후 Commit -> Push

그리고 나서, 해당 저장소에 있는 동료가 파일을 수정하고 Commit을 하고 Push를 하면 오른쪽 화면에서 보이는 것처럼 "login 3"이 나타나는 것을 확인할 수 있다.