협업을 위해 Git 사용하기

소환인·2023년 12월 8일
0

스터디노트

목록 보기
35/48

Git연습을 할 겸, 팀 스터디를 위한 리포지토리를 만들기로 했습니다. 개인적 목적으로 리포지토리를 만들고 사용한 적은 있지만, 협업을 위해 사용한 적은 없어서 Git 사용에 익숙해지기 위해 팀스터디를 위한 리포지토리를 만들고 팀 자료를 공유하기로 했습니다. 아래는 그 과정을 찾아보고 실습한 내용을 정리한 것입니다.

1. 깃허브에 리포지토리 생성

팀과 협업에 사용할 리포지토리를 생성합니다.

2. 로컬에 리포지토리 클론

리모트에 생성한 리포지토리를 로컬로 가져옵니다.

예)

git clone https://사용자명:토큰@github.com/리포지토리_주소
git clone https://buzziru:토큰@github.com/buzziru/team_study.git

3. 팀원 초대

리포지토리를 생성했으면 협업을 할 팀원을 초대할 수 있습니다. settings - collaborators를 통해 팀원을 초대합니다.

4. 로컬 리포지토리 구성

추후 작업과정 중에 폴더구조가 변경될 가능성이 크지만, 처음 계획한 구조를 기본으로 리포지토리를 구성합니다.

5. 개별 브랜치 생성

데이터 분석 프로젝트를 진행한다면, 시각화, 머신러닝 모델 등 기능별로 브랜치를 구분해서 생성합니다. 기능별로 분리된 작업영역에서 작업을 완료하고 최종적으로 main 브랜치로 합병합니다. 예시로 생성하는 리포지토리는 팀스터디를 위한 것이므로 각자의 이니셜을 따서 브랜치를 생성하기로 했습니다.

git checkout -b 브랜치이름

새로 생성한 브랜치에서 git status로 현재 상태를 확인 후 로컬폴더의 작업 내용을 커밋합니다. 여기선 예시를 위해 README.md 파일을 수정하고, 그 수정사항을 커밋하도록 하겠습니다.

git add .
git commit -m '커밋메세지'

6. 원격 리포지토리로 커밋

로컬에 생성한 브랜치를 리모트에 푸쉬합니다.

git push origin 생성한 브랜치

깃허브를 확인해보면, 새로운 브랜치에서 푸쉬가 있었음을 보여줍니다.

7. pull request 생성 및 branch merge

개인적으로 리포지토리를 사용할 땐 개별 브랜치에서 git merge를 통해 간단하게 브랜치를 병합하지만, 협업과정에선 개별 브랜치를 메인 브랜치로 병합하기 전 작업 내용을 협업자 간에 확인하는 과정을 필요로 합니다.

개별 브랜치에서의 작업이 완료되면, 이 변경사항을 메인 브랜치(보통 main 또는 master)에 병합하기 전에 'Pull Request(PR)'를 생성합니다. 이 과정은 협업에서 코드 리뷰와 토론을 위한 것입니다.

  1. pull request 생성:
    • 위의 이미지에서 pull request 버튼을 누릅니다.

  • 'base' 브랜치로 메인 브랜치(main 또는 master)를 선택하고, 'compare' 브랜치로 변경사항을 적용하고자 하는 브랜치를 선택합니다.
  • 필요한 설명, 관련 이슈 등을 추가한 후 'Create pull request' 버튼을 클릭합니다.
  1. 코드 리뷰 및 토론:

  • 다른 팀원들은 생성된 PR을 검토하고, 코드에 대한 피드백을 제공할 수 있습니다.
  • 필요한 경우 코드 수정이 이루어지고, 추가 커밋을 통해 PR에 반영될 수 있습니다.
  1. Pull Request 승인 및 병합:
    • 리뷰 과정이 완료되고 모든 이슈가 해결되면, PR을 승인하고 메인 브랜치에 병합할 수 있습니다.
    • 충돌이 발생한다면, 충돌을 어떻게 해결할지에 대해서도 여기서 논의하게 됩니다.
    • 깃허브에서는 'Merge pull request' 버튼을 브랜치 병합을 수행할 수 있습니다.
  2. 브랜치 정리:
    • 병합이 완료된 후에는 더 이상 필요하지 않은 브랜치를 정리(삭제)할 수 있습니다.

여기선 리포지토리의 목적상 설정하지 않았지만 PR 승인 옵션을 설정할 수 있습니다.

  • PR 승인 옵션 설정:
    - 깃허브에서는 PR 승인에 대한 다양한 옵션을 제공합니다. 예를 들어, 'Branch protection rules'를 설정하여 특정 브랜치에 대한 변경 사항을 제한할 수 있습니다.
    - 메인 브랜치에 대해 PR 병합 전에 최소한 몇 명의 리뷰어의 승인을 필요로 하는 'required reviews'를 설정할 수 있습니다.

이 과정을 통해, 팀원들은 각자의 작업을 독립적으로 진행하고, 중앙 브랜치에 안전하게 병합하는 것이 가능해집니다.


팀 스터디를 위한 리포지토리를 만들면서, 깃을 협업 도구로 인식하고 사용하려고 시도해 보았습니다. 코드를 통해 소통하는 방법은 어떤 체계를 갖고 있는가를 살펴볼 수 있었습니다.

강의에서 깃이 버전관리에 더해 단순히 코드와 데이터를 공유한다는 기술적인 부분을 넘어서 팀 내 커뮤니케이션과 공동 작업의 질을 향상시키기 위한 도구라는 설명이 왜 적절했는지를 조금 알 것 같습니다.

profile
돌고돌아

0개의 댓글