이전 글에서는 깃허브에 여러분의 저장소를 만들고 연동하는 내용을 살펴봤습니다.

 

이 글에서는 마스터 저장소와 개발용 저장소를 나누고, 깃허브 Pull Request을 이용 코드리뷰 환경을 구성합니다.

이 글에서 다음 내용을 설명합니다.

  1. 코드리뷰를 위한 깃허브 저장소 구성 전략
  2. Fork로 개발용 저장소 복사하기
  3. 변경내역 적용 요청(PR) 및 코드리뷰

 

이 시리즈에서는 깃과 깃허브를 이용하는 기본적인 방법과 깃허브를 이용한 코드리뷰 방법을 설명합니다.

 

코드리뷰를 위한 깃허브 저장소 구성 전략

Pull Request 활용

깃허브에서 코드리뷰는 깃허브의 Pull Request(이하 PR) 기능을 이용합니다.

PR은 원격 저장소간 변경된 내역을 적용(당겨가길) 요청하는 기능입니다.

 

다음 그림은 데브기어 교유과정에서 발생한 PR 예시입니다.

PR 작성 시 작업내용에 대한 코멘트와 여러건의 커밋을 포함합니다.

 

 

 

PR의 하단에는 PR에 대한 전반적은 의견을 남길 수 있습니다.

공동작업자(관리자)의 경우 적용요청(PR)을 병합(Merge)하거나 종료(Close)할 수 있습니다.

 

 

또한, 커밋 로그에서는 소스코드 줄 단위로 의견을 남기는 것도 가능합니다.

 

 

 

Fork - 원격저장소 복사

PR을 활용하려면 원격 저장소가 분리되어 있어야 합니다. 원격 저장소를 분리는 Fork 기능을 이용합니다.

 

 

원격 저장소를 분리하면 다음의 잇점이 생깁니다.

  • 마스터(출시용: Release) 저장소와 개발용 저장소가 분리되 관리자와 개발자 작업 공간 분리
  • 여러 개발자(또는 개발팀) 별로 저장소 사용 가능
  • 각 개발자가 작업한 결과물을 관리자 및 팀원들이 검토 후 마스터 저장소에 적용(또는 중단)

 

위 구성을 활용해 다양한 저장소 구성 전략을 새울 수 있습니다.

 

소규모 개발팀에서는 팀장과 운영팀에서 마스터 저장소를 관리합니다. 개발자들은 개인 개발용 저장소에서 작업합니다.

개발작업 완료 후 개발용 저장소에 작업한 내용을 마스터 저장소에 반영요청(PR)합니다. 팀장과 다른 팀원은 PR에 대한 코드리뷰 후 적용 여부를 판단합니다.

 

Fork로 개발용 저장소 복사하기

마스터 저장소를 Fork해 개발용 저장소를 생성하고, 개발용 저장소를 이용하는 방법을 실습합니다.

 

마스터 저장소 다음 링크의 데브기어의 교육용 저장소로 실습을 진행합니다.

 

위 링크 방문 후 상단 우측의 [Fork]를 클릭합니다.

 

 

 

잠시후 여러분의 계정에 SetupText 저장소가 생성될 것입니다.

이제 마스터 저장소는 devgeredu/SetupTest로 개발용 저장소는 (여러분 아이디)/SetupTest로 진행합니다.

 

 

이제 앞으로 여러분들은 개발용 저장소에서 작업을 진행해야 합니다.

 

이전 글에서 여러분들이 만든 저장소를 RAD 스튜디오로 불러오고 Commit 및 Push 했던 작업을 개발용 저장소를 대상으로 진행합니다.

 

간단한 과정은

  1. 저장소 URL 복사
  2. RAD 스튜디오에서 File > Open From Version Control...
  3. Git 선택 > 저장소 주소와 저장 경로 지정 후 프로젝트 열기
  4. 프로젝트 소스코드 수정(에디트 컴포넌트 추가)
  5. Project 팬에서 프로젝트 팝업 메뉴 Git > Commit > From Repository Root
  6. 커밋 메시지 입력(Edit 추가) 및 Commit 버튼 클릭
  7. Project 팬에서 프로젝트 팝업 메뉴 Git > Push > From Repository Root
  8. 깃허브 계정으로 로그인
  9. 깃허브 페이지에서 변경내역 확인

 

 

 

변경내역 적용 요청(PR) 및 코드리뷰

개발용 저장소에서 개발이 완료(여러차례의 Commit과 Push)되면, 그 내용을 마스터 저장소에 적용해야 합니다.

여러분들은 마스터 저장소에 대한 쓰기 권한이 없기 때문에 마스터 저장소의 작업자에게 내가 작성한 코드를 적용하길 요청하는 Pull Request를 작성해야 합니다.

 

개발용 저장소 페이지의 상단에 Pull requests 탭을 선택합니다.

 

 

그리고, [New pull request] 버튼을 클릭합니다.

 

 

 

페이지가 이동되면 마스터 저장소로 이동되고, PR을 생성할 수 있습니다.

먼저 두개의 브랜치를 대상을 확인합니다. 커밋 로그를 확인합니다. 하단에 변경된 파일 정보를 확인할 수 있습니다.

확인 후 [Create pull request] 버튼을 클릭해 PR을 생성합니다.

 

 

PR의 제목과 내용 입력 후 [Create pull request] 버튼을 클릭합니다.

 

 

 

다음과 같이 PR이 등록되었습니다. 

PR 상세화면에서는 추가 코멘트를 달거나, 본인이 작성한 PR을 닫을 수 있습니다.

 

 

 

Pull Requests 탭을 다시 선택하면 PR 목록이 표시됩니다.

이 목록은 마스터 저장소 관리자 뿐아니라 누구에게나 공개됩니다.

 

 

 

마스터 저장소 관리자의 PR 상세 페이지에는 PR에 대한 정보와 함께, 변경사항을 병합(Merge)가능합니다.

관리자는 다른 코드리뷰어의 PR에 대한 코멘트와 소스코드에 대한 코멘트를 참고해서 병합 여부를 판단할 수 있습니다.

 

 

 

PR의 변경사항 병합을 결정했다면, [Merge pull request] 버튼을 클릭해 병합하면, 해당 PR의 상태가 Open에서 Merged로 변경되어 닫힙니다.

 

 

소스코드를 확인해보면 PR에서 변경된 "Edit 추가" 커밋 메시지가 표시됨을 확인할 수 있습니다.

 

 

 

정리

깃 설치부터 RAD 스튜디오의 깃 설정, 생성한 저자소와 연동 및 코드리뷰를 위한 저장소 방안까지 다음 시리즈를 통해 살펴봤습니다.

 

 

 

사실 이 글은 가장 기본적인 내용으로만 구성했습니다. 깃과 깃허브에는 더 다양한 기능들이 있습니다.

여러분들의 조직과 환경에 맞춰 그 기능을 추가 학습해 개발조직에 가장 중요한 소스코드를 효과적으로 관리 운영하시기 바랍니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15469
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13974
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16505
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22061
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23273
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18933
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39266
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174729
474 [XE8] Getit(패키지 관리자) - 번거로운 컴포넌트 검색과 설치를 손쉽게 할 수 있습니다. Humphery 2015.05.28 1293
473 [개발환경] 델파이, RAD스튜디오 에서 Git과 Github를 사용해야하는 이유와 꼭 필요한 만큼 사용법 관리자 2020.08.27 1292
472 [베를린] 폴 디자이너를 분리해 여러 폼화면을 동시에 보고 편집할 수 있습니다. [1] file 험프리 2016.04.21 1290
471 [업데이트][Hotfix] 일부 파이어몽키 컴포넌트 크기 조정 시 기본크기로 표시되는 이슈 Humphery 2014.12.05 1289
470 [세미나 자료] RAD Studio XE7 출시 세미나(2014.9.2/3) file 관리자 2014.09.05 1289
» [개발환경] 깃허브 PR을 이용한 코드리뷰 환경 구성(4) 험프리 2019.06.20 1283
468 새로운 무료 개발 도구들 관리자 2021.07.07 1278
467 [설치방법] 10.3 리오 업데이트2 관리자 2019.07.24 1273
466 애플 WWDR 인증서 만료로 iOS 개발자 인증서 이슈 해결 방안 험프리 2016.02.17 1261
465 윈도우 11: 공룡들을 전멸 시킬 유성이 곧 쏟아집니다. 관리자 2021.07.02 1251
464 [고객 사례- 조명, 시스템제어, 델파이] 나이아가라 폭포 야간 조명 [1] 관리자 2017.05.10 1244
463 엠바카데로에 직접 문의해 답변을 받아볼 수 있습니다.(퀄리티 포털 사용방법 안내) 험프리 2015.03.09 1238
462 [마감임박] Google의 새로운 Android API Level 26 요구사항 해결방법 2가지 [2] 험프리 2018.07.31 1234
461 [시애틀] VCL 스타일을 적용해 1분만에 윈도우 10 최신신 룩앤필을 적용할 수 있습니다. 험프리 2015.09.02 1234
460 [시애틀] 컨트롤 힌트, 윈도우 10 용 네이티브 랜더링 등 윈도우 10용 FMX! 험프리 2015.09.07 1220
459 2017년 가장 많이 클릭된 기술자료 TOP 7 관리자 2018.01.23 1219
458 [고객사례-UI컴포넌트 개발도구, 델파이] 페트라 (Petra) 관리자 2018.02.01 1218
457 [XE8] 애플리케이션 외관을 멋지고 일관되게 적용할 수 있는 프리미엄 스타일(Radiant, Vapor 추가) Humphery 2015.05.19 1216
456 RAD Studio XE7에서 VCL개선된 내용 관리자 2014.11.22 1214
455 FMX Linux (파이어몽키 리눅스) 첫 걸음 시작하기 관리자 2019.07.10 1212