'
본문 바로가기
study/Git&Github

[Git & GitHub] - Github 협업 기능 이해 및 활용

by meowdule 2025. 2. 4.

 

1. GitHub 협업 개요

 

GitHub는 팀원들과 효과적으로 협업할 수 있는 다양한 기능을 제공합니다.

 

팀원 초대

더보기

repository의 setting에서 collaborators 들어가기

 

add people 누르기

 

초대할 팀원의 github 닉네임 검색해서 추가하기

 

상대방의 팀원 참여 응답 기다리기

 

팀원의 레포지토리 팀원 요청 받기

 

요청 수락하기

 

팀원 추가 확인하기

 

주요 협업 도구

  • Fork & Pull Request: 외부 저장소 작업 후 병합 요청
  • Issues: 작업 및 문제 추적
  • Projects: 작업 진행도 시각화
  • Milestones: 목표 관리 및 진척도 추적
  • Tags & Releases: 프로젝트 버전 관리 및 배포
  • Labels : 이슈 유형 구분을 위한 태그
더보기

Labels (레이블) 설정

repository의 Issues에서 Labels에 들어가기

 

labels 수정하기

 

예시

  • Question - 질문사항
  • Deployment - 배포관련
  • Settings - 개발 환경 설정
  • Refactor - 코드 리펙토링
  • Test - 테스트 관련
  • Docs - 문서 작성 및 수정
  • Bug fix - 버그 수정
  • New Feature - 기능 개발

 

GitHub 협업의 흐름 정리

  1. 프로젝트 진행 중 발생한 작업을 Issue로 관리합니다.
  2. 각 작업에 대해 브랜치를 생성하고 기능을 구현한 후 Pull Request를 통해 변경사항을 제출합니다.
  3. 팀원들이 PR을 검토하고 코드 리뷰를 거쳐 병합합니다.
  4. 주요 기능이 완료되면 Tag Release를 생성하여 배포를 준비합니다.
  5. Projects 기능으로 작업 상태를 시각적으로 추적하며 효율적으로 협업을 이어갑니다.

 

 

 

 

2. Tag & Release 관리하기

 

Tag란?

  • 특정 커밋을 가리키는 참조 포인터로 중요한 시점을 표시합니다.
  • 주요 사용 사례: 버전 릴리즈, 기능 완성
# 태그 목록 확인 
git tag

# v1.0.0 태그 생성 
git tag v1.0.0 

# 설명 메시지와 함께 tag 생성
git tag -a <태그명> -m "릴리즈 설명" 

# 원격저장소에 tag push
git push origin <태그명>

 


Release란?

  • 특정 태그를 기반으로 배포판을 생성하는 기능입니다.
  • 릴리즈 노트를 작성하고, 파일 첨부 등을 통해 배포 준비를 완성할 수 있습니다.

Release 생성 방법:

  1. GitHub 프로젝트 페이지에서 "Releases" 탭으로 이동
  2. "Draft a new release" 클릭
  3. 태그 지정 및 릴리즈 정보 입력 후 저장

 

 

 

 

3. Issues로 작업 관리하기

 

Issues란?

  • 프로젝트 개발 중 발생하는 버그, 기능 추가 요청, 설계 변경 등의 이벤트를 기록합니다.
  • 팀원이 협업하며 문제를 추적, 해결하는 데 사용됩니다.

 

주요 설정

  • Label: 이슈의 유형을 나타내는 태그 (예: Bug, Enhancement)
  • Assignee: 담당자 지정
  • Linked PR: 관련 Pull Request 연결
  • Milestone: 개발 목표 설정 및 진행 상황 추적

 

 


 

Issues (이슈) 템플릿 생성하기

더보기

repository의 setting 들어가서 스크롤 내리기

 

Features에서 issues의 set up templates 누르기

 

상황에 따른 템플릿 선택하기

 

 Rreview and edit 누르기

 

 연필모양을 통해 템플릿 수정하기

 

템플릿 내용 작성하기

  • 문제 제기
    - 어떠한 문제로 해당 기능을 추가하려 하는지 명확하고 간결하게 설명해주세요.
  • 기능 요약
    - 새롭게 추가하려는 기능에 대해 요약해서 작성해주세요.
  • 기능 설명
    - 개발해야 하는 상세 내용에 대해 설명해주세요.
  • 할 일 목록
    - 해당 기능을 개발하기 위해 수행해야 할 하위 업무를 to-do list 형식으로 작성해주세요.
  • 비고
    - 해당 기능에 대한 스크린샷이나 상세 설명, 레퍼런스 등을 작성해주세요.

 

 Propose changes를 누른뒤 commit 눌러서 템플릿 수정내용 저장하기

 

Issues (이슈) 생성하기

  • repository의 issues에서 new issue 클릭

  • 이슈 템플릿 선택

  • 목적에 맞게 이슈의 제목과 내용을 설정합니다.

  • 생성된 이슈 확인

  • 중요하거나 자주 확인할 이슈일 경우 핀고정하기

 

실습 - todo-list-webapp 다크모드 추가하기

더보기
# 다크 모드 기능 추가 코드 작성
echo "console.log('Dark Mode Feature');" >> app.js

# 변경사항 staging 및 commit
git add app.js
git commit -m "#3 feat: 다크 모드 기능 추가"

# 변경사항 원격 저장소에 push
git push origin main

 

  • 이슈 종료하기

  • 커밋 메시지를 통한 이슈 종료하기

 

 

 

4. Projects로 작업 시각화하기

 

Projects란?

  • 프로젝트의 작업 흐름과 상태를 한눈에 파악할 수 있도록 도와주는 시각적 관리 도구입니다.
  • 작업 상태를 To Do, In Progress, Done 등의 단계로 구분하여 관리합니다.
    • Todo: 해야 할 작업
    • In Progress: 진행 중 작업
    • Done: 완료된 작업
  • 이슈 및 Pull Request를 프로젝트와 연결하여 진행 상태를 추적할 수 있습니다.

 

Projects 사용 방법

  • 프로필을 누른 뒤 "Yours Projects" 탭으로 이동

  • 새 프로젝트 보드 생성 후 템플릿 선택
    • 일반적으로 board 템플릿 사용

  • 이슈와 Pull Request를 프로젝트 보드에 추가

  • 프로젝트에서 이슈 확인하기

  • 원격 저장소에 프로젝트 연결

  • 프로젝트 공유 설정

  • 워크플로우 설정하기
    • 특정 이벤트에 대한 워크플로우 설정
      ex) 이슈를 닫았을 때 상태를 자동으로 done으로 변경

  •  

 

 

 

 

5. Milestones로 프로젝트 목표 관리하기

 

Milestones란?

  • 프로젝트의 주요 목표나 마일스톤을 설정하고 관련 이슈와 작업을 추적합니다.
  • 목표에 대한 진행 상황을 퍼센트로 시각화하여 한눈에 파악할 수 있습니다.

(2) Milestones 사용 방법

  1. 프로젝트 페이지에서 "Milestones" 탭으로 이동
  2. 새 마일스톤 생성 후 목표와 마감일 설정
  3. 이슈들을 마일스톤에 연결하여 진행 상황 추적

 

  • repository의 Issues에서 milestiones 들어가기

  • 마일스톤 생성하기

  • 이슈를 마일스톤에 추가하기

  • 완료된 이슈에 따라 진척도 변화

 

 

 

마무리
익숙해지려면 많이 써봐야겠어요