Git

0원으로 현업 환경을 설정해보자! Github Pull Request(코드리뷰)

iOS_Assin 2019. 11. 15. 03:47

이 포스팅은 "실제 현업의 환경을 설정해보자!"의 Series  중 일부입니다.

 

 

1.  0원으로 현업 환경을 설정해보자! Git

2  0원으로 현업환경을 설정해보자! Sourcetree

3. 0원으로 현업환경을 설정해보자! Beyond Compare

4. 0원으로 현업환경을 설정해보자! Git Flow(Sourcetree)

5. 0원으로 현업 환경을 설정해보자! Github Pull Request(코드 리뷰)

6. 0원으로 현업환경을 설정해보자! [번외편] 히스토리 꾸미기

 

들어가기 앞서

구글 코드리뷰 가이드 한글은 여기를 참조해주세요.

구글 코드리뷰 가이드를 한글로 번역해주신 Soojin Ro 님께 감사드립니다.

 

리뷰어 (Reviewer): 코드를 검토하는 대상자입니다.

리뷰이(Reviewee): 검토 대상자입니다. 

 

살아가면서 현실이상은 다르듯이 구글 코드리뷰 가이드을 무조건 따르는 것보다는

현재 환경에 맞도록 적용하는 것이 중요하다고 생각합니다. 

 

이슈와 풀 리퀘스트의 자세한 내용은 Github Collaborating with issues and pull requests 를 참조해주세요.

리뷰이 (Reviewee)

리뷰이는 작성한 소스를 Github 에 제출합니다. 

 

Fork 

Github Repo 우측에 보시면 Fork 버튼이 있습니다. 

 

 

Fork 클릭하시면 어느 곳에 Repo를 배치할지를 정할 수 있습니다. 

 

 

풀 리퀘스트 요청

풀 리퀘스트 작성하는 방법은 2가지가 있습니다. 

 

1. 소스트리를 통해서 "풀 리퀘스트 작성" 기능을 통해서 풀 리퀘스트를 작성할 수 있습니다. 

 

 

소스트리를 이용할 경우 Remote 브랜치에 Push 까지 되니 주의해서 사용해주세요.

 

2. Github Page 에서 풀 리퀘스트 요청

 

 

풀 리퀘스트 작성

이제 요청할 브랜치를 비교하고 풀 리퀘스트를 작성합니다.

 

 

 

만약 풀 리퀘스트 Template 를 만들고 싶으면 Creating a pull request template 를 참조해주세요.

 

지금은 간단한 예제만 해보도록 하죠~ 

Test PR 을 입력합니다.

 

 

리뷰어 (Reviewer)

 

 

리뷰이가 풀 리퀘스트를 요청하게 되면 Github 의 풀 리퀘스트 목록이 표시됩니다. 

 

 

Test PR 을 클릭하면 풀 리퀘스트 상세 화면으로 이동합니다.

 

 

"Test PR" 이라는 간단한 수정사항이 있습니다.

 

만약 Pull Request 한 브랜치를 Checkout 하고 싶다면

실제 현업의 환경을 설정해보자! Sourcetree 편을 읽어주세요!

 

 

 

 

이제 Comment 를 달아볼까요? 

 

 

AGString 오픈소스를 만들면서 달았던 Comment 입니다!

 

 

 

 

 

 

Submit Review 를 하기전에 선택할 수 있는 옵션이 있습니다.

 

자세한 내용은 여기를 참조해주세요.

 

  • Comment: 명시적인 승인없이 일반적인 피드백을 제출합니다.
  • Approve: 의견을 제출하고 풀 요청에서 제안 된 변경 사항을 병합합니다.
  • Request changes: 제안된 변경 사항에 대한 피드백을 요약 한 설명을 입력합니다.

 

하지만 여기서 끝나는 것이 아닙니다.

풀 리퀘스트를 Merge 를 하기 옵션이 있습니다. 

자세한 설명 여기를 참조해주세요.

 

각 선택적 요소에 대해 자세하게 정리되어 있는 내용은 여기를 참조해주세요.

 

 

Create a merge commit 

Feature 브랜치의 모든 커밋이 병합 커밋의 기본 브랜치에 추가됩니다

 

Squash and merge

풀 요청의 커밋이 단일 커밋으로 스쿼시됩니다.

 

Rebase and merge

모든 커밋이 병합 커밋없이 개별적으로 기본 브랜치에 추가됩니다.

 

더보기

GitHub의 리베이스 및 병합 동작은 git rebase와 약간 다릅니다.

GitHub의 리베이스 및 병합은 항상 커미터 정보를 업데이트하고 새로운 커밋 SHA를 생성하는 반면,

GitHub 외부의 git rebase는 상위베이스 커밋 위에서 rebase가 발생할 때 커미터 정보를 변경하지 않습니다.

 

 

 

Github Release Asset

Github 의 Release 를 클릭하면 아래 "ddd"와 같이 Assets 과 함께 Uploaded 된 것을 본적이 있을 것 입니다. 

 

stackoverflow 에서 관련 내용을 찾을 수 있었습니다.

Command Line 과 관련된 내용은 Github Release API 참조해 주세요.

 

 

Release Tab에서 Draft a new release 를 클릭합니다.

 

그러면 아래와 같이 Draft 를 입력할 수 있는 Form 이 제공됩니다. 

 

Publish release 를 클릭하면 "ddd" 와 같이 release 가 됩니다.

 

 

 

참조: 

https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges

https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request

https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews

https://help.github.com/en/github/collaborating-with-issues-and-pull-requests

https://soojin.ro/blog/google-code-review-guide

https://help.github.com/en/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository