한 걸음씩 기록하며
#.7 Github로 협업하기 본문
앞서 살펴본대로, Github의 모든 branch는 Master에서 분기되고, 머지된다. 즉 마스터 관리를 잘해야한다. 하나의 remote 저장소를 가지고 협업하면서 커뮤니케이션이 잘되지 않으면, 혼란스러운 일이 발생할 수도 있기 때문이다. 👉🏻 이를 위해서 Github는 Pull Request 기능을 제공한다.
💡 Github로 협업하는 것에 있어서 핵심은 Branch와 Pull Request이다.
1) Github work flow
(1) A 라는 브랜치 생성
(2) A브랜치에 T라는 파일을 추가하고 커밋
(3) A 브랜치를 원격 저장소에 Push
(4) Github에서 푸시된 A 브랜치를 Pull Request
(5) Github에서 코드 리뷰
(6) Github에서 변경사항을 main 브랜치에 Merge
(7) 로컬 저장소에서 원격 저장소에 Merge된 내용을 pull
2) Pull Request란? (이하 PR)
PR은 동료들에게 commit 했으니, master에 Merge해도 되겠냐고 알리는 활동이라고 할 수 있다.
- 이는 위의 Work flow에서 (4)번에 해당한다.
- PR은 아래와 같이, (1) 작업 내용, (2) 내용 설명, (3) commit log, (4) reviewer 등의 내용을 포함하고 있다.
3) PR 만들기
(1) PR하기 원하는 local branch를 remote branch와 연결
- 브런치$ git push orgin 브랜치명 : origin(remote branch)에 local branch를 푸쉬한다.
(2) Github에서 PR 생성
- Repo에 push하면 Github 저장소에 Compare&Pull Request 버튼이 활성화된다.
- 혹은 code 태그 옆에 pull request를 클릭하면된다.
- 버튼을 클릭하여 메시지를 작성하고 PR을 하면, 동료들의 리뷰를 받아 최종 Merge가 된다.
- Merge가 되면 로컬 브랜치는 삭제하는 것이 좋다.
(3) Merge 종류
- create a merge commit : PR의 commit들이 merge 되고 main 브랜치의 Head Commit으로 들어감
- squash and merge : PR의 commit log들이 한 개로 추려져서 main에 병함됨 (PR 제목으로된 1개의 로그로 main에 병합)
- rebase and merge : PR의 commit log들이 main에 재정렬되어 병함됨 (커밋 로그들이 구구절절 Main에 한줄로 되어 마치 main에서 다 작업한 듯이 됨)(1) PR하기 원하는 local branch를 remote branch와 연결
'Git' 카테고리의 다른 글
#.6 Github Flow (0) | 2021.12.22 |
---|---|
#.5 Git Flow (0) | 2021.12.22 |
#.4 branch (0) | 2021.12.22 |
#.3 Remote (0) | 2021.12.22 |
#.2 Git Local 명령어 정리 (0) | 2021.12.22 |
Comments