TIL/기타

[GitHub] 이슈와 PR을 사용하여 협업하기

쑤키다요 2025. 6. 17. 01:01

* 단시간에 작성된 글로 추후 수정 및 검토 예정입니다 

 

 

개발자라면 모르면 안되는~

그치만 매번 헷갈리는..

GitHub 협업하기

 

 

초보자나, 익숙해도 헷갈리는!

모든 사람들을 위해 작성하는 글

 

 


 

 

1. issue 등록하기

내가 만약 

 

"블로그 자유게시판을 만들거다!"라고 한다면

추가해야 하는 기능은


1. 게시글 CR

2. 게시글 UD

3. 댓글 기능 정도

 

PR과 커밋은 작은 단위(300줄~500줄 사이라고 어디서 봤는데..)가

코드리뷰어에게도 좋고, 팀원들의 코드 읽는데도 도움을 주기 때문에

1번 2번을 먼저 개발하기로 하자

 

 

우리 팀은 해당과 같이 기능 추가 및 코드 구현 시 사용하는

'공용 이슈 템플릿'이 있다.

(템플릿을 사용하고 싶으면 .github/ISSUE_TEMPLATE 폴더에 마크다운 형식으로

원하는 이슈 템플릿을 추가하면 됨 - 이건 우리 팀은 이미 완료!)

 

 

 

내가 개발해야 되는 기능이 위의 1번, 2번이니까

팀의 이슈 컨벤션에 맞춰 작업하기 전 작성한다.   

 

 

 

그럼 개발 시작 전 가장 먼저 해야되는 이슈 등록하기 끝!

 

 


 

 

2. branch 만들기

우리는 

 

1. main branch -> 배포 용으로 사용

2. dev branch -> 개발 브랜치

 

로 기본 브랜치가 있고,

 

기능에 따라서 각자 브랜치를 만들기로 했다.

 

 

git-flow 관련 유명한 글이 있어 첨부한

 

https://techblog.woowahan.com/2553/

 

우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그

안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합니다. '배달

techblog.woowahan.com

 

 

 

팀 organization에서 Repository를 로컬로 가져오고, 작업 브랜치를 만드는 과정은 다음과 같다!

 

 

로컬에 우선 repoistory를 clone하고, 

git clone https://github.com/your-team/project.git

 

develop branch를 pull 받고

git checkout dev
git pull origin dev

 

 

내가 이슈에 작성한 기능을 바탕으로 branch를 만든다!

 

위에서 블로그 CRUD를 만들기로 했으니까

feat/blog 혹은 feat/blog-crud 라는 브랜치를 만들면 된다!

 

git checkout -b feat/blog-crud

 

 

branch 생성 한 후에 커밋해도 되고, 바로 코드 구현을 해도된다

 

커밋을 하고 싶다면?

커밋은 우리가 기존 코드 구현 후 작성하는 것과 동일하다

 

git add .
git commit -m "Feat: 블로그 기능 구현 초기 세팅"
git push origin feat/blog-crud

 

만약 이때 

 

이렇게 뜬다면 당황하지말고!

 git push --set-upstream origin feat/blog-crud

 

를 통해 branch를 올리면 된다

 

그럼 이제 코드 구현할 준비는 됐다!

 

주의할 점은 항상 코드 구현 하기 전에

pull을 받아서 최신 상태에서 작업하여 conflict를 최소화할 것!

 

dev branch의 최신 업데이트 사항을 내 브랜치로 옮기고 작업하자

git pull origin dev

 

 


 

 

3. 코드 작성 후 PR 하기

이제 자유롭게 코드를 작성하고

커밋을 하면?

우리의 feat/blog-crud 에는 우리가 작업한 코드가 올라가 있을 것이다.

 

하지만? dev branch에는 우리가 작업한 것이 전혀 반영이 되어 있지 않다!

 

feat/blog-crud ------ Pull Request ------> dev

 

PR(Pull Request)를 통해 dev branch 에 코드를 적용시켜줘야 한다.

 

 

 

** 이때 주의해야할 점은 만약 팀에서 dev / prod(main) branch를 나눠서 쓸 경우

꼭 PR은 개발 branch인 'dev' branch로 날려야 한다.

 

 

내가 만약 작업을 잘 했다면!

 

상단에 노란색 표시로 Pull Request 요청 혹은

Contribute를 누르면 Open pull reqeuest 버튼이 뜰 것이다

 

(사진은 feat/main -> dev 로 PR을 날리는 예시이니 혼동하지 말 것!)

 

우리 팀은 초기에 PR 도 컨벤션을 아래와 같이 정했다!

 

## #️⃣연관된 이슈
> ex) #이슈번호, #이슈번호

## 📝작업 내용
> 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)


## 이후 작업
> 이후에 작업할 내용을 추가해주세요
- [ ] 대댓글 기능 구현

## 💬리뷰 요구사항(선택) 및 기타 참고사항
> ex) 실행 시 yml 파일 필요합니다.

## ✅ 체크리스트
- [ ] 코드 점검 완료했습니다
- [ ] 문서/주석 최신화 완료했습니다

 

 

 

 

이때 우리는 1번에서 작성한 이슈 번호를 연관 지어 PR에 넣어

어떤게 변경 되었는지 쉽게 확인하기로 했으므로

이슈 넘버도 같이 제목 및 내용에 넣어주면 된다.

 

이슈는 이슈 페이지에서 # 뒤에 붙은 번호!

 

 

그럼 이제 양식에 맞게 작성하고

Create Pull Request를 누르면 PR완료!

 

 

 


 

이렇게 하면! GitHub, branch 전략을 사용한 협업 완성~

 

이후에는 각 팀마다 merge 담당자가 있기도 하고,

코드 리뷰를 2명이상 받거나,

 

아래와 같이 approve를 2명 이상 받으면 마지막 사람이 merge 해주는 등

다양한 방법이 있다!

 

 

단순히 내 코드만 작성하는 것이 아니라

상대방의 코드를 읽고, 코드리뷰를 하면서 

협업의 진짜 맛을 느껴보자(?)

 

 

그럼 끝!

 

 

 

 

 

 

*오류, 오타가 있으면 제보 부탁드립니다 🫱🏼‍🫲🏻🙆🏼‍♂️