Home GitHub에서 Pull Request와 Merge를 이용해 협업하기
Post
Cancel

GitHub에서 Pull Request와 Merge를 이용해 협업하기

GitHub에서 작업 브랜치를 나누고, 브랜치를 보호하고, Pull Request와 Review, Merge를 이용해 협업하는 방법에 대해 알아보겠습니다.

1. GitHub Repository에 팀원 초대하기

제가 혼자 진행중인 프로젝트에 팀원을 초대하고, 어떻게 협업을 할 수 있을지 알아보겠습니다.

사실 팀원이 없어서 제가 아이디를 하나 더 만들고 진행하겠습니다.

제가 hhejo이고 레포지토리 관리자로서 팀원 heejoo를 초대해보겠습니다.

GitHub에서 본인이 진행하는 프로젝트의 Repository로 들어갑니다.

상단 링크에서 Settings를 클릭합니다.

좌측 메뉴에서 AccessCollaborators를 클릭합니다.

Collaborators

Manage access 아래 Add people 버튼을 클릭합니다.

Add people

초대할 팀원의 닉네임이나 이메일 등을 작성해 초대합니다.

Search

Add

이제 팀원은 초대를 수락하면 됩니다.

Accept

2. master branch 에서 develop branch 나누기

master 브랜치는 매우 중요한 브랜치입니다.

해당 브랜치에 아무나 다른 브랜치를 무턱대고 merge하거나, push 하거나, master 브랜치를 삭제한다면 곤란해집니다.

충돌이 발생할 수도 있고, 다른 팀원들이 깃 플로우를 따라오는 데에 힘겨워질 수 있습니다.

master 브랜치에서 develop 브랜치를 나누고, 우리는 develop 브랜치에서 주 업무를 진행하겠습니다.

Repository 화면에서 좌측의 master 버튼을 누르고 develop 이름의 브랜치를 생성합니다.

Create

develop 브랜치가 생성과 함께 선택되었습니다.

Develop

3. master branch 보호하기

더욱 안전하게, master 브랜치에 머지를 시도하는 경우 Pull Request를 필요로 하게 하고, 해당 Request의 승인을 요구하게 만들고 직접 Push도 할 수 없게 설정하겠습니다.

SettingsCode and automationBranches를 클릭하고 브랜치 보호 규칙을 추가합니다.

Branches

Require a pull request before mergingRequire approvals,

그리고 Lock branch만 체크하고 생성합니다.

Rule 1

Rule 2

4. Local에서 remote branch 가져오기

git branch로 로컬 깃 브랜치를 조회합니다. -r은 원격 브랜치만 조회하고 -a는 local, remote 까지 포함해 조회합니다.

1
2
3
4
5
6
7
git branch
* master
git branch -r
  origin/master
git branch -a
* master
  remotes/origin/master

git remote update를 통해 원격 브랜치를 로컬로 업데이트합니다.

1
2
3
4
5
6
git remote update
https://github.com/hhejo/node-practice URL에서
 * [새로운 브랜치]   develop    -> origin/develop
git branch -r
  origin/develop
  origin/master

git switch -t 원격_브랜치_이름로 로컬로 브랜치를 가져옵니다.

1
2
3
4
5
6
7
8
git switch -t origin/develop
branch 'develop' set up to track 'origin/develop'.
새로 만든 'develop' 브랜치로 전환합니다
git branch -a
* develop
  master
  remotes/origin/develop
  remotes/origin/master

참고로 브랜치 조회 화면에서 q를 누르면 빠져나옵니다.

5. 로컬에서 작업하기

develop 브랜치에서 feature 브랜치를 생성하고 거기에서 작업한 후, 깃허브에 Push 해보겠습니다.

feature 브랜치에서 간단한 커밋을 한 후, 깃허브 레포지토리에 푸시합니다.

1
2
3
4
# (작업..)
git add .
git commit -m 'Merge Test'
git push origin feature

6. 깃허브에서 Pull Request 생성하기

이제 깃허브에 Compare & pull request 버튼이 나타날 텐데 이것을 누르면 됩니다.

만약 뜨지 않는다면, 직접 Pull Request를 생성합니다.

Push

base: developcompare: feature가 될 수 있도록 주의 깊게 설정합니다.

Create pull request 1

Create pull request 2

버튼을 눌러 Pull Request가 생성됐습니다.

Pull request

7. Review 작성하기

팀원이 해당 Pull Request의 Review를 작성합니다.

Review 1

Review 2

Review 3

Review 4

8. Merge 수행하기

필요한 수 만큼의 Review를 얻었다면, Merge를 수행할 수 있습니다.

Merge 완료된 feature 브랜치 삭제도 가능하고, Merge를 되돌릴(Revert) 수도 있습니다.

Merge 1

Merge 2

Merge 3

9. 결과 그래프 확인하기

현재까지 프로젝트의 커밋 그래프를 확인할 수 있습니다.

Insights을 클릭하고 Network를 클릭합니다.

Graph

This post is licensed under CC BY 4.0 by the author.