[Git] 다른사람 Repository에 Pull Request 보내기
나의 코드를 공유하는 것은 좋은 경험입니다. Github Repository의 Pull Request
는 팀원 서로에게 코드 리뷰는 받을 때 사용할 수도 있지만, 모드는 사람의 Repository에서도 경험해 볼 수 있습니다.
예를 들면, 특정 라이브러리를 사용중인데 나는 이런 기능이 더 추가 되었으면 좋겠다! 라는 생각이 든다면 해당 기능을 구현한 후, 원본 Repository에 PR을 날리는 겁니다. 나의 기능이 반영이 될 수도, 거절이 될 수도 있지만 기능을 구현하는 과정에서 상대방이 작성한 코드를 이해하는 시간도 될 수 있고 나의 코드의 문제점 또한 객관적으로 바라볼 수 있는 경험이 되기도 합니다.
필자는 android open source를 모아놓은 유명한 Repository를 fork 한 후, PR 요청해보겠습니다.
Step 1. 기여하고자 하는 Repository fork 하기
오른쪽 상단 fork 버튼을 누른 후, 원하는 곳에 저장소를 생성하면 됩니다.
Step 2. 기여하고자 하는 Repository PR 날리기
fork를 받은 후, 해당 저장소에 원하는 기능을 구현하고 commit과 push를 진행합니다.
정상적으로 commit이 등록되었는 지 확인하고, 되도록이면 commit을 한개로 만드는 것이 좋습니다. commit을 분리하여 각 commit마다 고유 기능을 의미한다면 어쩔수 없지만, 같은 의미를 뜻하는 commit들은 git rebase
로 합치는 작업을 한 후 PR을 날리는 것이 좋습니다.
Pull Request 탭을 간 후, create로 생성하면 위와 같은 화면이 나옵니다. fork 받은 프로젝트에서 PR을 생성하면 upstream Repository
로 PR을 요청 보낼 수 있게 됩니다.
하단으로 스크롤하면 변경된 commit에서 수정된 코드를 볼 수 있어서 PR을 요청하기전 다시 한번 확인하는 것이 좋습니다.
PR의 내용을 작성해주세요!. 자신이 구현한 기능이 복잡하다면 자세히 설명해주는 것이 좋습니다.
Step 3. PR 확인하기
fork 받은 Pull Request 탭으로 이동하여 방금 자신이 올린 PR이 등록됐는지 확인해보세요.
등록이 되었다면 이제 피드백을 기다리면 됩니다! 수고하셨습니다.
큰 기대는 없었는데 ㅠㅠ 이렇게 유명한 저장소에 저의 코드가 들어가게 되었네요.
Step 4. Fork 받은 저장소 최신 버전으로 유지하기
저의 PR이 등록되어 원본 Repository의 master가 변경되었죠. fork 받은 저장소도 최신 상태를 유지해야 합니다.
원본 저장소 Remote 추가
$git remote add upstream https://github.com/wasabeef/awesome-android-ui.git
원본 저장소 fetch
$git fetch upstream
원본 저장소의 master를 merge
$git merge upstream/master
fork 저장소로 push
$git push origin master