목차

풀 리퀘스트 사용하기

  • 풀 리퀘스트는 리파지토리의 변경 사항을 여러 사용자가 검토하며, 브랜치간 코드를 병합하는 기능을 제공하는 방법입니다.
  • 중요한 브랜치(예를 들어, 릴리즈 브랜치)에 변경 사항이 적용되기 전에, 풀 리퀘스트를 통하여 여러 사용자가 변경되는 코드에 대해 검토할 수 있으며, 이를 통해 코드 품질을 관리할 수 있습니다.
  • 풀 리퀘스트를 사용하기 위해선, 소스 브랜치와 대상 브랜치가 필요합니다.
    • 소스 브랜치 : 변경 사항이 반영 된 브랜치
    • 대상 브랜치 : 변경 사항이 포함 될 브랜치

풀 리퀘스트 생성하기

Step 1. 코드 페이지에 접속

① 풀 리퀘스트를 생성할 리파지토리 코드 페이지로 이동 후, [Pull Requset] 탭을 선택합니다.

② [풀 리퀘스트 생성] 버튼을 클릭합니다.

Step 2. 풀 리퀘스트 생성

① 리파지토리 변경 사항이 반영될 대상 브랜치를 선택합니다.

② 리파지토리 변경 사항이 반영된 소스 브랜치를 선택합니다.

③ 대상 브랜치, 소스 브랜치를 선택한 후, [선택] 버튼을 클릭하여 두 브랜치의 비교사항을 확인합니다.

① 풀 리퀘스트 제목을 작성합니다.

② 풀 리퀘스트 설명을 작성합니다.

③ 대상 브랜치, 소스 브랜치 간 차이를 확인할 수 있습니다.

  • Commits 탭 : 두 브랜치 간 커밋 차이를 확인할 수 있습니다.
  • Files changed : 두 브랜치 간 파일 변경 사항을 확인할 수 있습니다.

④ [생성] 버튼을 클릭하여 풀 리퀘스트를 생성할 수 있습니다.

⑤ [다시 선택] 버튼을 통해 대상 브랜치, 소스 브랜치를 변경할 수 있습니다.

풀 리퀘스트 확인하기

Step 1. 풀 리퀘스트 리스트

① 코드 페이지의 [Pull Request] 탭에서 풀 리퀘스트 리스트를 확인할 수 있습니다.

② 처음 [Pull Request]에 진입하면 열림 상태의 풀 리퀘스트 리스트가 표시됩니다. 필터를 통해 상태에 따른 풀 리퀘스트 리스트를 확인할 수 있습니다.

Step 2. 풀 리퀘스트 상세 정보

① 풀 리퀘스트를 클릭하여 상세 정보를 확인할 수 있습니다.

② 풀 리퀘스트 제목과 설명이 표시됩니다. 풀 리퀘스트를 생성한 사용자는 해당 내용을 편집할 수 있습니다.

③ 탭 항목 별 풀 리퀘스트 상세 정보를 확인할 수 있습니다.

  • Comments 탭 : 풀 리퀘스트에 달린 코멘트를 확인할 수 있습니다.
  • Commits 탭 : 두 브랜치 간 커밋 차이를 확인할 수 있습니다.
  • Files changed : 두 브랜치 간 파일 변경 사항을 확인할 수 있습니다.

④ [추가] 버튼을 통해 해당 풀 리퀘스트에 코멘트를 생성할 수 있습니다.

⑤ [편집] 버튼을 통해 코멘트를 수정할 수 있습니다.

풀 리퀘스트 병합하기

Step 1. 풀 리퀘스트 상태 확인

① 대상 브랜치, 소스 브랜치 간 충돌이 없을 경우 해당 메시지가 표시됩니다.

② 요청된 풀 리퀘스트에 대해 검토가 완료된 후, 두 브랜치를 병합을 하기 위해서는 [Merge] 버튼을 클릭합니다.

  • Merge는 로그인한 계정이 고객 계정이거나, NCP_FIN_INFRA_MANAGER 권한 혹은 선택한 리파지토리에 대해 WRITE 권한 이상을 가지고 있는 서브계정이어야 합니다.

Step 2. 풀 리퀘스트 병합

[Merge]는 새로운 병합 커밋을 생성합니다.

① Merge 전략이 표시됩니다.

② 현재 로그인한 사용자의 아이디가 자동으로 입력됩니다. 해당 내용은 수정할 수 있습니다.

  • 작성자 이름은 생성되는 커밋의 user.name 값이 됩니다.

③ 현재 로그인한 사용자의 이메일이 자동으로 입력됩니다. 해당 내용은 수정할 수 있습니다.

  • 이메일 주소는 생성되는 커밋의 user.email 값이 됩니다.

④ 커밋 메시지를 작성합니다.

⑤ [적용] 버튼을 클릭하여 두 브랜치를 Merge 합니다.

  • Merge는 로그인한 계정이 고객 계정이거나, NCP_FIN_INFRA_MANAGER 권한 혹은 선택한 리파지토리에 대해 WRITE 권한 이상을 가지고 있는 서브계정이어야 합니다.

풀 리퀘스트 충돌 해결하기

Step 1. 풀 리퀘스트 상태 확인

① 대상 브랜치, 소스 브랜치 간 충돌이 있을 경우 해당 메시지가 표시됩니다.

② 충돌이 있을 경우, [Merge] 버튼은 비활성화 되며, 개인 PC에서 충돌 해결 후 병합할 수 있습니다.

Step 2. 풀 리퀘스트 충돌 해결

아래 내용은 개인 PC에서 수행되는 작업이며, 개인 PC에 리파지토리가 존재한다는 가정하에 작성되었습니다. 대상 브랜치는 master, 소스 브랜치는 issue로 가정합니다.

Git Client를 통해 아래 내용을 수행합니다.

① 대상 브랜치로 체크아웃 합니다.

$ git checkout master

② merge 명령어를 통해 소스 브랜치를 병합합니다.

$ git merge issue

Auto-merging file.txt
CONFLICT (add/add): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
  • 두 브랜치 간 충돌이 있는 경우 위와 같은 메시지가 노출됩니다.

③ 충돌이 발생한 파일 목록을 확인합니다.

$ git status

On branch master
Your branch is up-to-date with 'origin/master'.
You have unmerged paths.
  (fix conflicts and run "git commit")

Unmerged paths:
  (use "git add <file>..." to mark resolution)

        both added:      file.txt

④ 충돌이 발생한 파일 내용을 확인하면 아래와 같이 변경되어 있습니다.

<<<<<<< HEAD
master: 대상 브랜치의 내용
=======
issue: 소스 브랜치의 내용
>>>>>>> issue*
  • ======= 을 기준으로 위는 대상 브랜치의 내용, 아래는 소스 브랜치의 내용이 작성되어 있습니다.
  • 충돌난 부분을 확인하고 파일을 수정하여 충돌을 해결해주어야 합니다. git에서 표시한 마커를 모두 제거해야 합니다. (<<<<<<< HEAD/=======/>>>>>>> issue)

⑤ 충돌 파일을 모두 수정한 후, 해당 내용을 원격 저장소에 push 합니다.

$ git add file.txt

$ git commit

$ git push

⑥ 대상 브랜치에 소스 브랜치가 병합되어 리파지토리에 반영 됩니다.

충돌 해결에 관한 좀 더 자세한 내용은 git 공식 문서를 확인해주세요. (git 공식 문서 바로가기)

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...