GitHub를 통한 팀원 간 협업 방법
이 글에서는 효율적인 팀 협업을 위해 Git과 GitHub를 활용하는 방법을 정리했습니다. GitHub는 코드 관리, 버전 제어, 그리고 협업 도구로서, 팀의 생산성을 크게 향상시킬 수 있습니다.
1. 기본 설정
팀장
GitHub 저장소 생성
GitHub에서 새로운 프로젝트 저장소를 생성합니다.
초기 파일을 추가하고 기본 브랜치를 설정합니다(보통
main
또는develop
).git clone <repository-url> cd <repository-name> git branch -M main # 기본 브랜치를 main으로 변경 git push -u origin main
협업할 팀원들에게 초대 링크를 보내고 권한을 부여합니다.
Branch 전략 정의 프로젝트 브랜치 전략을 사전에 정의합니다.
main
: 배포 가능한 안정적인 브랜치.develop
: 기능 개발과 통합 테스트가 진행되는 브랜치.feature/<기능명>
: 개별 작업을 위한 브랜치.
팀원
원본 저장소 Fork
팀장이 만든 원본 저장소를 내 Github로 Fork해서 가져옵니다.
저장소 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. 코드 리뷰 및 병합
팀장
GitHub에서 PR을 확인하고 코드 리뷰를 진행합니다.
문제가 발견되면 팀원에게 피드백을 제공하고 수정 요청을 합니다.
문제가 없다면
develop
브랜치에 병합(Merge)합니다.git fetch origin feature/<feature-name> git checkout develop git merge feature/<feature-name> git push origin develop
병합이 완료된 작업 브랜치를 원격에서 삭제합니다.
git push origin --delete feature/<feature-name>
팀원
- 팀장의 피드백에 따라 변경 사항을 반영하고 다시 푸시합니다.
6. 팀원 로컬 환경 업데이트
팀원:
develop
브랜치 최신 상태로 업데이트 병합된 내용을 로컬로 가져옵니다.git checkout develop git pull origin develop
완료된 작업 브랜치 삭제
git branch -d feature/<feature-name>
7. 충돌(conflict) 해결
병합 중 충돌이 발생하면 아래 단계를 따라 해결합니다.
충돌 파일을 확인합니다.
git status
충돌 내용을 수정한 후, 스테이징 및 커밋합니다.
git add <resolved-file> git commit
수정된 내용을 다시 푸시합니다.
git push origin develop
전체적인 Workflow
- Github, git을 사용한 전체적인 협업 Workflow는 아래의 그림처럼 나타낼수 있습니다.
- 팀장: GitHub 저장소 생성 → 브랜치 전략 정의 → 팀원 초대.
- 팀원: 저장소 Clone → 작업 브랜치 생성.
- 팀원: 파일 수정 → 커밋 → 푸시 → Pull Request 생성.
- 팀장: PR 리뷰 → 병합 및 브랜치 정리.
- 팀원: 로컬 환경 최신화 및 브랜치 정리.
참조
https://medium.com/nerd-for-tech/github-basics-f447028e1bd2
https://www.dalescott.net/using-gitflow-with-githubs-fork-pull-model/
'Git' 카테고리의 다른 글
git merge, 브랜치 병합 도구 (0) | 2024.11.07 |
---|---|
[Git] reset restore 작업 복구 커밋 되돌리기 (0) | 2024.06.16 |
git stash, 작업 변경사항 임시저장 설명 (0) | 2024.06.12 |
댓글