HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👨🏻‍💻
달리 2팀
/복구/
Github 협업 매뉴얼
Github 협업 매뉴얼
Github 협업 매뉴얼

Github 협업 매뉴얼

Github PR 협업 플로우저장소 가져오기작업하기Step#1 무엇을 작업할지 이슈를 등록한다Step#2 upstream/develop 브랜치에서 이슈 번호(ex. MGC-1)로 feature 브랜치를 만든다Step#3 원격 저장소의 최신 상태를 로컬에 반영한다Step#4 작업을 하고 커밋을 남긴다Step#5 작업을 푸시하기 전에 Step#3을 반복한다Step#6 작업이 끝난 피쳐 브랜치를 origin에 push 한다Step#7 origin에 push 된 내용을 토대로 upstream에 PR을 올린다Step#8 머지 완료된 브랜치 정리하기Git 커밋 규칙See also

Github PR 협업 플로우

저장소 가져오기

  1. [@GITHUB] 공통 계정(ex. organization) 원격 저장소(Github repository)를 fork를 한다
    1. 공통 계정 원격 저장소는 upstream이라고 부른다
    2. 개인 계정으로 가져온 원격 저장소는 origin이라고 부른다
  1. 개인 원격 저장소를 로컬에 클론한다
  1. 레포를 연결하기 위해 upstream과 origin을 설정한다
  1. 원격 저장소 데이터 가져오기

작업하기

notion image
💡
TL;DR: 1. 로컬에서 작업한 내용을 origin에 push 한다. 2. origin에 올라온 내용을 upstream으로 PR을 보낸다.

Step#1 무엇을 작업할지 이슈를 등록한다

notion image

Step#2 upstream/develop 브랜치에서 이슈 번호(ex. MGC-1)로 feature 브랜치를 만든다

Step#3 원격 저장소의 최신 상태를 로컬에 반영한다

Step#4 작업을 하고 커밋을 남긴다

Step#5 작업을 푸시하기 전에 Step#3을 반복한다

현재 브랜치의 작업이 길어졌을 경우, 그동안 upstream/develop이 업데이트 되었을 수도 있다. 이때 브랜치를 푸시하기 전에 이력이 꼬이지 않도록 최신 상태를 로컬에 반영한다.

Step#6 작업이 끝난 피쳐 브랜치를 origin에 push 한다

Step#7 origin에 push 된 내용을 토대로 upstream에 PR을 올린다

💡
양식: 1. MGC-이슈번호 커밋내용 2. 이슈 번호 써주고 / 오른 쪽에서 이슈 같이 달아주기
notion image

Step#8 머지 완료된 브랜치 정리하기

Git 커밋 규칙

이슈 레이블:
  • feat
  • refactor
  • fix
  • docs
  • chore
  • style

See also

  • 팀 단위로 코드 리뷰 지정하기
  • 키워드를 이용해서 PR과 이슈 연결하기
  • 헤이딜러 개발팀의 PR 관리 방법 7가지
git clone <개인 계정 원격 저장소 주소>
# 원격 저장소 정보 자세히 보기 (-v: verbose) git remote -v # 원격 저장소 설정하기 git remote add upstream <공통 계정 원격 저장소 주소> # 설정 완료 예시 git remote -v origin git@github.com:datalater/dali2-test.git (fetch) origin git@github.com:datalater/dali2-test.git (push) upstream git@github.com:daliteam/dali2-test.git (fetch) upstream git@github.com:daliteam/dali2-test.git (push)
git fetch origin git fetch upstream # 또는 모든 리모트 데이터 한번에 가져오기 git fetch --all # 잘 가져왔는지 확인 (git l 명령어는 alias 등록해야 한다) git l --all
# upstream/develop 브랜치에서 새 피쳐 브랜치를 만든다 (-c: create) git switch -c MGC-1 upstream/develop # 참고: 브랜치 이름 변경하기 git branch -m MGC-1 MGC-4
git fetch upstream && git rebase upstream/develop git l --all
git add . git commit -m "MGC-이슈번호 내용" # 예시: MGC-8 인증 스레드 알람 추가
git fetch upstream && git rebase upstream/develop git pull = git fetch && git merge => 3 way merge => merge 커밋 git pull --rebase develop
git push origin <작업한-브랜치>
# 머지가 완료된 develop 브랜치의 최신 코드를 반영한다 git switch develop git fetch upstream && git rebase upstream/develop # origin 원격 저장소에도 develop 반영한다 git push origin develop # 작업이 완료된 브랜치를 삭제한다 # -- merge 이후 안전하게 삭제 git branch -d MGC-[이슈번호] # -- squash and merge 이후 강제로 삭제 git branch -D MGC-[이슈번호] # 로컬에 남아 있는 원격 저장소 브랜치 삭제하기 # -- origin에서 이미 브랜치 삭제한 경우 로컬에 반영하기 git remote prune origin # -- origin에 올라간 브랜치 삭제하기 git push origin :MGC-[이슈번호]
MGC-8 인증 스레드 알람 추가