Git : Pull Request (PR)
- 기타 Tool/Git
- 2022. 8. 29.
1. Pull Request
- Github는 여러 사람들이 저장소를 병합할 수 있도록 하는 PR 기능을 제공한다.
2. fork
2.1 fork란?
- fork는 협업을 위해 상대방의 코드를 가지고 오는 공유 방법 중의 하나다.
2.2 접근 권한
- 자신이 소유자이거나 구성원인 경우에는 접근 권한이 있음. 만약 접근 권한이 없으면 접근 권한을 요청해야함.
2.3 fork 해오기
- 우측 상단에 위 화면이 존재한다. 여기서 Fork를 클릭하면 저장소를 내 원격 리포지토리로 복사할 수 있다.
2.4 fork 확인
- fork 한 저장소는 우측 상단의 fork 기능이 비활성화 된다.
- 좌측 상단에는 어떤 리포지토리에서 fork 되었는지 확인할 수 있다.
3. 복제
$ git clone <복제 url>
- 포크는 본인 계정에 원격으로 복제한다. 포크된 저장소를 내 로컬로 다운 받아서 코드를 수정하면 된다.
- 위 명령어를 이용해서 복제 받을 수 있다.
4. 코드 수정
5. Pull Request
포크된 저장소로 이동한 후, PR을 생성하면 된다.
5.1 PR 생성
생성하면 다음과 같은 문구가 나온다.
- 어떤 저장소의 어떤 브랜치가 어떤 저장소의 어떤 브랜치로 들어갈지를 정할 수 있다.
- 이 때 그 브랜치에서 어떤 커밋이 존재하는지를 볼 수 있다.
- 그리고 DIFF 에는 merge 하는 녀석들을 기준으로 어떤 차이가 있는지를 확인할 수 있다.
5.2 PR 메세지 생성
- create pull request 버튼을 누르면, PR 메세지를 작성할 수 있다.
- 이 때 제목 / 내용을 작성해야한다.
- 다음과 같이 PR을 생성할 수 있다.
- create pull request를 이용해서 PR을 생성한다.
5.3 PR 확인
- 원본 리포지토리로 이동해보면 Pull Requests에 새로운 (1)이 떠있는 것을 볼 수 있다.
6. 테스트 및 검증
- PR을 merge하기 전에 테스트가 필요하다. 따라서 필요한 경우, 원본 리포지토리에 PR 요청이 온 리포지토리를 Fetch로 가져와서, Test 브랜치를 새로 생성해서 테스트 해볼 수 있다.
# 원본 리포지토리 추가
$ git clone <원본 주소> test
# fork 리포지토리 추가
$ git remote add fork <fork 주소>
$ git fetch fork
# 테스트 브랜치 생성
$ git checkout -b req1
# git merge fork/master
# 코드 테스트
- 위 명령어를 이용해서 만들어진 테스트로 만들어진 브랜치를 내 브랜치에 병합해서 테스트 브랜치를 만든다.
- 두 가지를 확인했다.
- merge가 정상적으로 되는 것을 확인했음
- 반영한 Commit이 정상적으로 나오는 것을 볼 수 있음. (Second PR)
- 정상적으로 반영이 되었기 때문에 test 브랜치를 삭제하고, PR을 허락해준다.
- 브랜치를 삭제하는 이유는 사용하지 않을 브랜치이기 때문이다.
- 따라서 Merge Pull Request를 클릭해서 PR을 Merge 해준다.
- PR을 허락하면, "Second PR" 이라는 변경점이 반영된 것을 볼 수 있다.
- 반영한 결과를 확인해보면, 현재 로컬의 브랜치는 git Repository에 있는 브랜치 대비 2번이나 뒤쳐진 것을 볼 수 있다.
'기타 Tool > Git' 카테고리의 다른 글
Git 복귀 (1) | 2022.08.29 |
---|---|
Git 병합 / 충돌 (0) | 2022.08.29 |
Git Branch (1) | 2022.08.27 |
Git Remote Repository (0) | 2022.08.27 |
Git의 Commit (0) | 2022.08.26 |