Github 협업하기 : PR부터 merge까지

이동엽·2022년 11월 23일
18

etc

목록 보기
5/6

어느덧 4학년이 다가왔고, 캡스톤 디자인(쉽게 말해 졸업 작품)을 해야하기 때문에 협업이 필수가 되었다.

팀원들 모두 각자 개인 Github에 코드를 올리는 것은 어렵지 않았지만, Github Oraganization을 만들고 Pull Request(이하 PR)를 날리는 것은 처음이라 쉽게 시도를 못하고 있다.

실무에서는 필수로 사용해야하는 기술이라 생각하여 초보자들이 보기 쉽게 정리해본다.


1. Fork

  • 프로젝트 레포지토리에서 Fork 버튼을 눌러 자신의 레퍼지토리로 가져온다.

2. Clone 및 Remote

  • 자신의 레퍼지토리에 fork된 레포지터리에서 URL을 복사한다.

  • 이후, 터미널을 키고 로컬 저장소에서 clone한다.

3. branch 생성

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

원격 저장소에 있는 코드를 로컬 저장소로 가져옴으로써, 원격 저장소의 코드는 건드리지 않는다.
로컬에서 코드를 작성한 뒤 원격 저장소의 코드와 추후 합병(merge)을 하면 된다.


# test라는 이름의 브랜치를 만들고, 체크아웃까지 동시에 한다.
$ git checkout -b test 

# test라는 이름의 브랜치를 생성만 하고 싶을 경우
$ git checkout test

# 브랜치 목록 조회
$ git branch

  • 실행 결과
    • 브랜치 이름이 main 에서 test로 바뀐 것을 볼 수 있다.

4. 수정 후 add-commit-push

  • 각자 자유롭게 내용을 수정해보자.
  • 작업이 완료되면 add-commit-push를 통해 자신의 Github repository에 반영한다.
    • 이때, push 과정에서 branch 명을 반드시 아래와 같이 명시해주어야 한다.

# branch 이름이 main/master가 아닌 test(자신이 만든 작업용 브랜치)로 할 것!!
$ git push origin test 

  • 실행 결과

  • 간혹, Push 과정에서 Token access error가 발생하는 사람들이 있다. (나 포함)
    • 이때는아래 사진과 같이 Settings - Developer settings - Personal access tokens를 발급받자.
    • 잘 정리해놓은 링크를 첨부하니, 맨 아래 참고 자료에서 확인하길 바란다.

5. Pull Request

  • 4번까지의 작업이 끝났다면, 자신의 Github 레퍼지토리로 들어가보자.
  • 아래 사진과 같이 Compare & pull request 버튼이 활성화되어 있을 것이다.
  • 해당 버튼을 선택하여 메시지를 작성하고 PR을 보내보자!


6. 코드 리뷰 및 Merge PR

  • 원본 저장소 관리자는 PR을 받으면 변경내역을 확인하고 Merge 여부를 결정한다.
  • Merge 방법에는 여러 방법이 있고, 이는 추후에 따로 포스팅할 예정이다.


7. Merge 이후 동기화 및 branch 삭제

  • 원본 저장소에 Merge가 완료되면 로컬 main 브랜치와 원본 저장소의 코드를 동기화해야 한다.
    • 현재 변경 사항은 test 브랜치에서 작성하여 적용되었으니, main 브랜치도 내용을 동기화해보자.
    • 우선, 자신의 Github repository에 들어가 브랜치가 main임을 확인하고, Sync fork를 눌러 Update branch 버튼을 누르자.


  • 이후, 로컬에 있는 main 브랜치와도 동기화를 시키기 위해 아래 명령어를 실행하자.
  • 작업용으로 만들었던 로컬 branch를 삭제하자.
# 코드 동기화
$ git checkout main 
$ git pull origin main

# 로컬 브랜치 강제 삭제
$ git branch -D test 

# 원격 브랜치 삭제
$ git push origin --delete test

8. 반복 작업

  • 나중에 추가로 작업할 일이 생기면 아래 순서와 같이 하면 된다.
    • 자신의 Github repository에서 Sync fork 버튼이 활성화되어 있다면 버튼을 눌러 동기화하자.
    • 이후, git pull origin main을 통해 로컬과 동기화를 시킨 후 3번 ~ 7번 작업을 반복하면 된다.

참고 자료

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

6개의 댓글

comment-user-thumbnail
2022년 11월 26일

덕분에 해결했습니다

답글 달기
comment-user-thumbnail
2023년 5월 23일

좋은 정보 감사합니다.

답글 달기
comment-user-thumbnail
2023년 5월 24일

자세하고 깔끔한 설명 감사합니다.

답글 달기
comment-user-thumbnail
2023년 6월 7일

잘 보고 갑니다.

답글 달기
comment-user-thumbnail
2023년 9월 20일

3번의 브랜치 생성 명령어에서 git checkout 명령어는 생성이 아니라 이미 있는 브랜치로 이동하는 것으로 알고 있는데 확인 부탁 드립니다!

1개의 답글