Pull Request
원격 저장소가 내 변경사항을 풀(Pull)하도록 요청(Request)을 보내는 방식
![img](https://blog.kakaocdn.net/dn/cYGY29/btrRo4q5sZF/gUIQOpUXR5cPm5QIibZoB0/img.png)
Pull Request 해보기
Pull Request 5단계
- 기여하려는 저장소를 본인 계정으로 **포크**하기
- 포크한 저장소를 **클론**하기
- 브랜치 생성 후 **생성한 브랜치에서 작업**하기
- 작업한 브랜치 **푸시**하기
- **풀 리퀘스트** 보내기
1. 기여하려는 저장소를 본인 계정으로 포크하기
❓포크(fork)
A *fork* is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project. [View existing forks.](https://github.com/kangtegong/collaboration/network/members)
포크를 하면 이 저장소의 복사본이 나의 계정에 내 소유로 만들어진다.
![img](https://blog.kakaocdn.net/dn/6r3wx/btrRssLK2VT/aFOrXUSxVDJL3d6JR39Jf1/img.png)
![img](https://blog.kakaocdn.net/dn/b8fIlH/btrRqG4LsGV/415kjCmIIFwVyp4BU2rCPK/img.png)
이건 어디서 복제된 건지 알려준다.
![img](https://blog.kakaocdn.net/dn/FALO5/btrRqFdASgX/sfgHaRCV3WGEQlYrX17h20/img.png)
포크는 왜 할까?
왜 우리 계정으로 저장소를 복제해올까?
원본 저장소는 우리 소유가 아니므로 push 권한이 없어서 못한다. 하지만 fork하면 우리 계정에 있는 저장소이므로 push가 가능해진다.
2. 포크한 저장소를 클론하기
⚠️'포크한 저장소'를 클론해야지, '원본 저장소'를 클론하는게 아니다!
![img](https://blog.kakaocdn.net/dn/JAEbW/btrRs865gnS/cRo65HpTABCNbEEm3ZnK5K/img.png)
클론 완료!
![img](https://blog.kakaocdn.net/dn/AvWMY/btrRtzpFf3i/ncv34IGU1rHtMyRKj0g8i1/img.png)
3. 브랜치 생성 후 생성한 브랜치에서 작업하기
해당 브랜치에서 작업해야 하므로 checkout 필수!
![img](https://blog.kakaocdn.net/dn/bKAtCD/btrRtHup7US/hO2pKqf7fxXg7by0URoJp1/img.png)
이제 여기서 작업을 하면 된다.
파일을 메모장으로 열고, 맨 아래에 값을 추가한 후 저장한다.
![img](https://blog.kakaocdn.net/dn/dcBEFU/btrRrncVPCW/ZtC7CInYkmZJsj00Uhlo71/img.png)
변경된 내용을 커밋한다.
![img](https://blog.kakaocdn.net/dn/c4fm6O/btrRpXS6OQ0/Qfyoe4skyKAaY2tA6Z3YKK/img.png)
4. 작업한 브랜치 푸시하기
변경된 내용을 푸시한다. main이 아니라 add_myname 브랜치에 푸시해야 한다.
![img](https://blog.kakaocdn.net/dn/dsIsGJ/btrRt8rKMYZ/ZRnfecU8JSz29Nfpfts7uk/img.png)
5. 풀 리퀘스트 보내기
내 저장소에서 **Compare & pull request**
![img](https://blog.kakaocdn.net/dn/bwhCpU/btrRsubN0yo/SjSOqstmzxs3YF09hon9PK/img.png)
nno3onn/collaboration 저장소의 add_myname 브랜치가 -> kangtegong/collaboration 저장소의 main 브랜치로 pull 요청을 보낸다.
![img](https://blog.kakaocdn.net/dn/bQXNcg/btrRtU8cLuG/kHrQkRrvtI6ctKKTkISZkK/img.png)
아래엔 작업 내역도 볼 수 있다 (실수 있는지 확인).
![img](https://blog.kakaocdn.net/dn/AbjFa/btrRpETBm96/VlnPv3x9qsni15WYqqrkfk/img.png)
kangtegong/collaboration 저장소에 Pull requests를 보면 내가 요청한 pull request가 생성된 것을 확인할 수 있다.
![img](https://blog.kakaocdn.net/dn/MYYAn/btrRt6U1Mw8/LI2H6KcgjWgwCDUfAXbUkK/img.png)
클릭해서 File changed에 들어가면 변경된 내역을 볼 수 있다.
![img](https://blog.kakaocdn.net/dn/rz3rK/btrRt8L4JcO/gqpL2clXYN3ldjIf7Xn62k/img.png)
이제 request가 승인될 때까지 기다리면 된다.
원본 저장소 주인장은 받은 Pull Requests에 코멘트를 달거나 문제가 없으면 **Merge pull requests** 버튼을 눌러서 병합한다. 그러면 자동으로 pull request는 닫기게 되고 원본 저장소에 내가 작업한 내용이 반영된다.
(+) 승인된 후 브랜치는 삭제하기
pull request가 성공적으로 이뤄지고 이 브랜치에서 더이상 할 작업이 없다면 **Restore branch**를 눌러서 브랜치를 삭제하자.
'Github' 카테고리의 다른 글
07_명령어로 깃 다루기 (0) | 2022.11.17 |
---|---|
06_01_깃허브로 협업하기: 연동 및 clone, push, fetch, pull (0) | 2022.11.17 |
05_브랜치로 나누어 관리하기 (0) | 2022.11.16 |
04_버전 가지고 놀기 (0) | 2022.11.16 |
03_버전이 쌓여 사용자에게 선보이기까지: 커밋해시, 태그 (0) | 2022.11.15 |