728x90
pull request 방법
순서
- Fork
- clone, remote설정
- branch 생성
- 수정 작어 후 add, commit, push
- pull Request 생성
- 코드리뷰, Merge Pull Request
- Merge 이 branch 삭제 및 동기화
1. Fork
- fork는 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제하는 기능이다. fork한 저장소는 원본(다른 사람의 github repository)와 연결되어 있다. 여기서 연결 되어 있다는 의미는 original repository에 어떤 변화가 생기면(새로운 commit) 이는 그대로 forked된 repository로 반영할 수 있다. 이 때 fetch나 rebase의 과정이 필요하다.
clone
- clone은 특정 repository를 내 local machine에 복사하여 새로운 저장소를 만든다. clone한 원본 repository를 remote 저장소 origin으로 가지고 있다. 권한이 없는 경우 해당 저장소로 push 하지 못한다. 또한 기존의 제일 처음 original repository와 연결되지 못한다. 즉 저장소의 commit, 등의 로그를 보지 못함
- 상대방이 먼저 push 후 origin/master에 변경 사항으 적용하였기 때문에 해다 변경 사항을 내 로컬에서도 적용학 위해서 친구가 수정한 커밋을 Fetch하고 Merge 해야한다.
2. clone, remote 설정
3. branch 생성
4. 수정 작어 후 add, commit, push
5. Pull Request 생성
push 후 계정에 Compare & pull request 버튼이 활성화 되어 있다.
해당 버튼을 클릭 후 메시지를 작성한다.
6. 코드리뷰, Merge pull Request
Review Changes
7. Merge 이 branch 삭제 및 동기화
PR을 Merge 하는 방법은 3가지가 있다.
1. Create a merge commit
PR의 commit들이 메시지와 함께 master의 Head commit을 들어간다.
$ git merge
명령어와 똑같다.2. Rebase and merge
PR의 커밋로그들이 master에 재정렬돼서 병합된다. PR에서 작성하 모든 커밋들이 master에서 관리돼야 한다면 Rebase and merge로 병합하는 방법이 좋다.
로컬에서 작성된 모드 커밋로그들까지 추적하 수 있는 장점이 있다.
3. Squash and merge
PR의 commit log들을 한개로 추려 master에 병합하는 방법이다. Squash and Merge를 클릭하면 PR 제목으로 된 1개의 커밋로그가 master에 병합된다.
PR 병합 후 Revert
$ git revert
와 동일하게 PR도 되돌릴 수 있다.- Revert 버튼을 클릭 하며 모든 commit이 되돌려진다.
- Delete branch 버튼으 클릭하면 PR 병하 후에는 필요 없는 브랜치를 지울 수 있다.
- 병합된 모습
참조
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 |