1. Fork / PR 이란?
fork 는 다른 사람의 github repository를 복제하여 어떤 부분을 수정, 추가, 삭제를 용이하도록 해주는 복제기능이다. 따라서 자신의 원격 저장소에서 다른 사람의 코드를 복제해와서 마음대로 수정할 수 있다.
fork 한 저장소는 원본(repository)와 연결되어있어 원본에 변화가 생기면 그대로 forked된 repository로 반영할 수 있다. (이때 fetch나 rebase의 과정 필요)
그 후 original repository에 변경사항을 적용하고 싶으면 해당 저장소에 pull request를 해야한다.
즉 원작자에게 요청을 보내어(pull request) 원작자가 수락하면, 원작 코드도 내가 수정한 코드로 바뀌고 자신이 contributor가 된다. 수락을 안하면 바뀌지 않는다.
2. Fork 하기
원하는 프로젝트에서 오른쪽 상단의 Fork 클릭
Repoitory 이름 / Description 설정 후 Create fork 클릭 하면 끝!
그러면 내 레포지토리에 추가된 걸 확인할 수 있다.
fork를 취소하고 싶으면 생성된 레파지토리를 삭제하면 취소가 된다.
3. Pull Request 하기
fork해 온 프로젝트에 변경사항을 반영시키기 위해서는 Pull Request를 해야한다. 다만 기존 프로젝트 주인이 PR 내용을 merge한 경우에만 적용된다.
0) PR 하기 전에 fork한 레포지토리를 최신으로 반영해야 할 때가 있다.
https://json.postype.com/post/210431
1) fork해 온 remote 레포지토리에서 보면, 수정된 내용이 있을경우 아래처럼 뜬다. 여기서 Contribute 클릭 후 Open pull request를 클릭하면 된다.
그러면 아래 사진처럼 뜬다.
상단의 base repository <- head repository라고 되어 있는 부분은 오른쪽에 있는 브랜치에서 왼쪽에 있는 브랜치로 PR 요청을 보낸다는 뜻이다. 다른 브랜치로 변경할 수 있다.
아래쪽의 Able to merge 라는 내용은 PR이 받아들여질 때 충돌 없이 잘 받아들여질 수 있다는 것을 의미한다.
만약 conflict가 발생할 경우 빨간색으로 cannot merge 라는 메시지가 뜰 것이다. 그렇다 하더라도 PR을 보내는 데에는 문제가 없으며 단지 PR을 받아들이는 쪽에서 충돌을 해결해야 한다는 번거로움이 있다.
2) 그리고 오른쪽에 있는 create pull request 버튼을 누르면 아래처럼 뜬다.
여기서 코멘트를 달 수 있다.
3) 코멘트 작성 후 오른쪽 아래에 Create Pull Request 버튼을 눌러 주면 원작자에게 요청이 보내진다.
원작자가 이 request를 받아들이면 본 브랜치로 merge하게 된다.
참조
'1. 프로그래밍 > 1-1. Git' 카테고리의 다른 글
Git - [ 커밋 메세지 규칙 ] (0) | 2022.06.12 |
---|---|
Git - [ issue 관리 ] (0) | 2022.06.11 |
Git - [ 강제로 Git Pull 하기 ] (0) | 2022.04.26 |
Git - [ eclipse 프로젝트 Github 올리기 ] (0) | 2022.04.01 |
Git - [이전 커밋 이름 변경하기] (0) | 2022.02.26 |