본문 바로가기

TIL (Today I Learned)/Git & Github

[Github] pull request 방법

728x90

pull request 방법

순서

  1. Fork
  2. clone, remote설정
  3. branch 생성
  4. 수정 작어 후 add, commit, push
  5. pull Request 생성
  6. 코드리뷰, Merge Pull Request
  7. Merge 이 branch 삭제 및 동기화

1. Fork

  • fork는 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제하는 기능이다. fork한 저장소는 원본(다른 사람의 github repository)와 연결되어 있다. 여기서 연결 되어 있다는 의미는 original repository에 어떤 변화가 생기면(새로운 commit) 이는 그대로 forked된 repository로 반영할 수 있다. 이 때 fetch나 rebase의 과정이 필요하다.
    스크린샷 2021-07-30 오후 11 42 21

clone

  • clone은 특정 repository를 내 local machine에 복사하여 새로운 저장소를 만든다. clone한 원본 repository를 remote 저장소 origin으로 가지고 있다. 권한이 없는 경우 해당 저장소로 push 하지 못한다. 또한 기존의 제일 처음 original repository와 연결되지 못한다. 즉 저장소의 commit, 등의 로그를 보지 못함

    스크린샷 2021-07-30 오후 11 45 34
  • 상대방이 먼저 push 후 origin/master에 변경 사항으 적용하였기 때문에 해다 변경 사항을 내 로컬에서도 적용학 위해서 친구가 수정한 커밋을 Fetch하고 Merge 해야한다.

2. clone, remote 설정

3. branch 생성

4. 수정 작어 후 add, commit, push

5. Pull Request 생성

스크린샷 2021-07-30 오후 11 50 58

  • push 후 계정에 Compare & pull request 버튼이 활성화 되어 있다.

  • 해당 버튼을 클릭 후 메시지를 작성한다.
    스크린샷 2021-07-30 오후 11 53 11

    6. 코드리뷰, Merge pull Request

  • Review Changes
    스크린샷 2021-07-30 오후 11 56 29

    7. Merge 이 branch 삭제 및 동기화

  • PR을 Merge 하는 방법은 3가지가 있다.
    스크린샷 2021-07-31 오전 12 03 55

    1. Create a merge commit

    • PR의 commit들이 메시지와 함께 master의 Head commit을 들어간다. $ git merge 명령어와 똑같다.

      2. Rebase and merge

    • PR의 커밋로그들이 master에 재정렬돼서 병합된다. PR에서 작성하 모든 커밋들이 master에서 관리돼야 한다면 Rebase and merge로 병합하는 방법이 좋다.

    • 로컬에서 작성된 모드 커밋로그들까지 추적하 수 있는 장점이 있다.
      스크린샷 2021-07-31 오전 12 12 12

      3. Squash and merge

    • PR의 commit log들을 한개로 추려 master에 병합하는 방법이다. Squash and Merge를 클릭하면 PR 제목으로 된 1개의 커밋로그가 master에 병합된다.

PR 병합 후 Revert

  • $ git revert와 동일하게 PR도 되돌릴 수 있다.

    스크린샷 2021-07-31 오전 12 13 33
  • Revert 버튼을 클릭 하며 모든 commit이 되돌려진다.
  • Delete branch 버튼으 클릭하면 PR 병하 후에는 필요 없는 브랜치를 지울 수 있다.
    스크린샷 2021-07-31 오전 12 16 12
  • 병합된 모습 스크린샷 2021-07-31 오전 12 18 40





참조

git 초보를 위한 풀리퀘스트(pull request) 방법

Git fork와 clone 의 차이점

6. Github으로 협업하는 법

'TIL (Today I Learned) > Git & Github' 카테고리의 다른 글

[MacOS] IntelliJ Github연동  (0) 2021.11.30
[Git MacOS] git status  (0) 2021.09.19
[Git, macOS] terminal로 pull push 해보기  (0) 2021.09.16
[Github] Create draft pull request  (0) 2021.09.04
[Git] Git & Github  (0) 2021.08.25