Pull Request란
코드 기여 원리 (Fork 와 Pull Request (PR))
다음과 같이 Gildong와 Minji 라는 깃헙 리포지토리가 있다고 하자.
이때 Minji가 GIldong 개발자의 프로젝트가 마음에 들어, 같이 프로젝트에 참여해 기여자(Contribute)로서 공헌을 하고 싶다고 한다.
하지만 내가 다른 사람의 저장소에 있는 코드를 수정하거나, 다른 사람의 저장소의 코드를 내가 수정하려면 관리자가 직접 나를 기여자(Contribute)로 등록이 되어있어야 한다.
하지만 모든 사람을 다 Contribute로 등록할 수는 없는 현실이다.
이때 사용하는 것이 Fork 이다.
포크로 쿡 찔러 가져오듯 다른 사람의 저장소에 있는 레포지토리를 내 원격 저장소, 깃허브로 가져오는 것이다.
즉, Minji라는 유저가 Gildong의 레포지토리 중 하나를 Fork하였다면, Minji의 github에 해당 레포지토리가 그대로 가져와 지제 된다.
그리고나서 Fork해온 원격 레포지토리를 내 로컬에 Clone 한 후 코드를 수정하면 된다.
Fork : 레포지토리를 원격저장소에 복사
Clone : 레포지토리를 로컬저장소에 복사
이제 Minji 개발자가 이것 저것 코드를 수정하거나 업그레이드 한 후, 아까 fork했던 Minji의 원격 저장소에 커밋한 뒤,
Gildong의 레포지토리에도 반영이 되면 좋겠다 생각이들면 Pull Request를 보내는 것이다.
그러면 Gildong이 코드 리뷰를 하고 문제가 없으면 자신의 메인 브랜치에 merge를 하는 식으로 프로젝트를 기여하는 방식이다.
Pull Request 란?
따라서 Pull Request(PR)을 정리하자면, 내가 수정한 코드가 있으니 내 branch를 가져가 검토 후 병합해주라고 요청 해주는 것이라고 보면 된다. PR을 통해 코드 충돌을 최소화할 수 있고 push 권한이 없는 오픈 소스 프로젝트에 기여할 때 많이 사용한다.