본문 바로가기
Git

Github, Git 팀 협업 Workflow 가이드

by 정권이 내 2024. 11. 18.

GitHub를 통한 팀원 간 협업 방법

 

img

이 글에서는 효율적인 팀 협업을 위해 Git과 GitHub를 활용하는 방법을 정리했습니다. GitHub는 코드 관리, 버전 제어, 그리고 협업 도구로서, 팀의 생산성을 크게 향상시킬 수 있습니다.

 

1. 기본 설정

팀장

  1. GitHub 저장소 생성

    • GitHub에서 새로운 프로젝트 저장소를 생성합니다.

    • 초기 파일을 추가하고 기본 브랜치를 설정합니다(보통 main 또는 develop).

      git clone <repository-url>
      cd <repository-name>
      git branch -M main  # 기본 브랜치를 main으로 변경
      git push -u origin main
      
    • 협업할 팀원들에게 초대 링크를 보내고 권한을 부여합니다.

     

  2. Branch 전략 정의 프로젝트 브랜치 전략을 사전에 정의합니다.

    • main: 배포 가능한 안정적인 브랜치.
    • develop: 기능 개발과 통합 테스트가 진행되는 브랜치.
    • feature/<기능명>: 개별 작업을 위한 브랜치.

     

팀원

  1. 원본 저장소 Fork

    팀장이 만든 원본 저장소를 내 Github로 Fork해서 가져옵니다.

     

  2. 저장소 Clone 팀장이 공유한 저장소를 로컬로 복제합니다.

    git clone <repository-url>
    

 

2. 작업 브랜치 생성

팀원

  • 팀장이 지정한 브랜치에서 작업 브랜치를 생성합니다.

    git checkout -b feature/<feature-name> origin/develop
    

 

3. 작업 진행 및 커밋

작업 파일 수정

  • 팀원은 로컬 환경에서 파일을 수정하고, 변경 사항을 확인한 후 스테이징 및 커밋합니다.

    git add .
    git commit -m "Add: 새로운 기능 구현"
    

 

최신 상태 유지

  • 작업 중간에 원본 저장소의 최신 상태를 가져옵니다

    git pull origin develop
    

 

4. 작업 내용 푸시 및 Pull Request 생성

작업 내용 푸시

  • 변경 사항을 Fork 또는 원격 저장소로 푸시합니다.

    git push origin feature/<feature-name>
    

 

Pull Request 생성

  • GitHub에서 Pull Request(PR)를 생성하는데 PR 작성 시, 작업 내용과 의도를 명확히 기술합니다.
  • Base 브랜치: develop
  • Compare 브랜치: feature/<feature-name>

 

5. 코드 리뷰 및 병합

팀장

  1. GitHub에서 PR을 확인하고 코드 리뷰를 진행합니다.

  2. 문제가 발견되면 팀원에게 피드백을 제공하고 수정 요청을 합니다.

  3. 문제가 없다면 develop 브랜치에 병합(Merge)합니다.

    git fetch origin feature/<feature-name>
    git checkout develop
    git merge feature/<feature-name>
    git push origin develop
    
  1. 병합이 완료된 작업 브랜치를 원격에서 삭제합니다.

    git push origin --delete feature/<feature-name>
    

     

팀원

  • 팀장의 피드백에 따라 변경 사항을 반영하고 다시 푸시합니다.

 

6. 팀원 로컬 환경 업데이트

팀원:

  1. develop 브랜치 최신 상태로 업데이트 병합된 내용을 로컬로 가져옵니다.

    git checkout develop
    git pull origin develop
    
  2. 완료된 작업 브랜치 삭제

    git branch -d feature/<feature-name>
    

 

7. 충돌(conflict) 해결

병합 중 충돌이 발생하면 아래 단계를 따라 해결합니다.

  1. 충돌 파일을 확인합니다.

    git status
    

     

  2. 충돌 내용을 수정한 후, 스테이징 및 커밋합니다.

    git add <resolved-file>
    git commit
    

     

  3. 수정된 내용을 다시 푸시합니다.

    git push origin develop
    

 

전체적인 Workflow

  • Github, git을 사용한 전체적인 협업 Workflow는 아래의 그림처럼 나타낼수 있습니다.
  1. 팀장: GitHub 저장소 생성 → 브랜치 전략 정의 → 팀원 초대.
  2. 팀원: 저장소 Clone → 작업 브랜치 생성.
  3. 팀원: 파일 수정 → 커밋 → 푸시 → Pull Request 생성.
  4. 팀장: PR 리뷰 → 병합 및 브랜치 정리.
  5. 팀원: 로컬 환경 최신화 및 브랜치 정리.

img

 

 

참조

https://medium.com/nerd-for-tech/github-basics-f447028e1bd2

https://www.dalescott.net/using-gitflow-with-githubs-fork-pull-model/

반응형

댓글