Skip to content

Git 4

복습

마크다운 문법

  1. 큰제목은?
  2. 이미지 첨부는?
  3. 순서없는 리스트는?
  4. 코드 블럭은?

Pull Request

Intro

회사에 들어가서 첫 교육을 받은 후 다음과 같은 말을 들을 때가 있다고 한다.

“회사 기술블로그 repository를 포크떠서 후기 작성하시고 저한테 PR 보내주세요”

이런 말을 들었을 떄, 자연스럽게 당황하지 말고 처리 할 수 있는 개발자가 되보자!!


목차

  • pull request를 위해서 아래와 같은 절차를 거친다.

  • Fork

  • clone
  • remote 설정
  • branch 생성
  • 수정 작업 후 add, commit, push
  • Pull Request 생성
  • 코드리뷰, Merge Pull Reqest
  • Merge 이후 branch 삭제 및 동기화

Fork

  • 타겟 프로젝트의 저장소를 자신의 저장소로 Fork 한다.

PR1 PR2

  • !! 여기서 궁금증 Fork가 뭘까요??

    Fork란 누군가의 원격저장소에서 내 원격저장소로 레파지토리를 복사하는 행위이다.

  • ?? 그럼 Fork와 Clone은 뭐가 다른 거죠?

  • https://github.com/baehanjae/PR_test2 를 포크 떠주세요


clone

  • fork로 생성한 본인 계정의 저장소에서 clone or download 버튼을 누르고 표시되는 url을 복사한다.

  • 터미널을 켜고 Desktop으로 이동한 후 git clone <URL>을 입력하여 바탕화면에 repository를 받는다.


remote 설정

  • 로컬 저장소에 원격 저장소를 추가한다. 위 작업과 동일하게 github 저장소에서 clone or download 메뉴를 통해서 확인한 url을 사용한다.
    • 원본 프로젝트 저장소 (직접 추가 필요)
    • fork한 로컬 프로젝트 (origin이라는 별명으로 기본으로 추가되어 있다. 따로 추가할 필요 없음)
# 원본 프로젝트 저장소를 원격 저장소로 추가
$ git remote add real-blog(별명) https://github.com/원본계정/blog.github.io.git

# 원격 저장소 설정 현황 확인방법
$ git remote -v

branch 생성

  • 자신의 로컬 컴퓨터에서 코드를 추가하는 작업은 branch를 만들어서 진행한다.

자신이 소유한 repository가 아니고 2명 이상이 코드에 관여를 하니 이런 상황에는 branch로 작업하는 습관을 들여야 할 것 같다.

# develop 이라는 이름의 branch를 생성한다.
$ git checkout -b develop
Switched to a new branch 'develop'

# 이제 2개의 브랜치가 존재한다.
$ git branch
* develop
  master

readme 파일을 HJ_readme로 복제하고 아무내용이나 추가 해주세요

수정 작업 후 add, commit, push

  • 자신이 사용하는 코드 편집 툴을 활용하여 수정 작업을 진행한다.
  • 작업이 완료되면, add, commit, push를 통해서 자신의 github repository (origin)에 수정사항을 반영한다.
  • !! push 진행시에 branch 이름을 명시해주어야 한다.
# develop 브랜치의 수정 내역을 origin 으로 푸시한다.
$ git push origin develop

Pull Request 생성

  • push 완료 후 본인 계정의 github 저장소에 들어오면 Compare & pull reqeust 버튼이 활성화 되어 있다.
  • 해당 버튼을 선택하여 메시지를 작성하고 PR을 생성한다.

PR3 PR4


코드리뷰, Merge Pull Reqest

  • PR을 받은 원본 저장소 관리자는 코드 변경내역을 확인하고 Merge 여부를 결정한다.

Merge 이후 동기화 및 branch 삭제

  • 원본 저장소에 Merge가 완료되면 로컬 코드와 원본 저장소의 코드를 동기화 한다.
  • 작업하던 로컬의 branch를 삭제한다.

# 코드 동기화
$ git pull real-blog(remote 별명)
# 브랜치 삭제
$ git branch -d develop(브랜치 별명)
* 나중에 추가로 작업할 일이 있으면 git pull real-blog <NAME> 명령을 통해 원본 저장소와 동기화를 진행하고 3~7을 반복한다.


과제

https://github.com/baehanjae/PR_test
위 주소의 파이썬 코드를 수정해서 pull request 날리기 계산기 만들기 예제를 pull request 하기