ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git/GitHub] Git 을 이용한 사이드 프로젝트 협업 방식 정리
    Git 2020. 12. 20. 21:21
    728x90

     

    사이드 프로젝트를 위해 Git 전략을 어떻게 가져갈지 많이 고민하고 있는 중이다.

     

    Git으로 협업하는 방법에는 크게 두가지가 있다.

    1. 하나의 원격저장소에서 모든 팀원들이 각자 브랜치를 두고 작업하는 방식

    2. 중앙 원격저장소에서 팀원들이 본인의 원격저장소로 Fork해서 작업하는 방식

     

    2번 Fork 방식은 아래와 같이 운영할 수 있다.

     

     

    팀원들의 수가 N명이라면,

    중앙원격저장소 : 팀원 원격저장소 : 팀원 로컬저장소 = 1 : N : N 이라고 할 수 있다.

     

     

    1) 프로젝트 중앙 원격저장소 

    GitHub에 팀 계정 또는 Organization을 새로 생성한다.

    해당 팀 계정의 Repository를 생성하여 프로젝트 소스코드를 Push한다.

    ex) team/project

     

    → 배포 가능한 상태만 관리하는 저장소이다.

     

     

    2) 각 팀원들의 원격저장소 (Remote Repository)

    각 팀원들이 중앙원격저장소(team/project)를 fork 한다.

    * fork : 다른 사람의  Repository를 내 Repository에 복제

     

    따라서 팀원 자신 계정의 원격저장소를 갖게 된다.

    ex) my_id/project, colleague_ud/project...

     

    → 팀원들 본인 로컬에서 작업한 내용을 각자 관리하는 저장소이다.

     

     

    3) 각 팀원들의 로컬저장소 (Local Repository)

    본인 원격저장소(my_id/project)를 Clone하여 본인 PC 로컬저장소에 소스코드를 받아온다.

    * clone : 원격 Repository의 소스를 내 로컬 PC 환경에서 작업하기 위해 복제하여 가져오는 것

     

    내 원격저장소를 Clone 하면 'origin' 이라는 이름으로 내 원격저장소가 자동으로 등록되어 있다.

    git remote -v 명령어로 내 프로젝트에 저장된 원격저장소를 확인할 수 있다.

    $ git remote -v
    origin	https://github.com/my_id/project (fetch)
    origin	https://github.com/my_id/project (push)

     

    앞으로 중앙 원격저장소와도 동기화(fetch) 가 필요하기 때문에 이를 추가해 주어야 한다.

    명령어는 git remote add <단축이름> <url> 이다. 단축이름은 upstream으로 추가하였다.

    $ git remote add upstream https://github.com/team/project
    $ git remote -v
    origin		https://github.com/my_id/project (fetch)
    origin		https://github.com/my_id/project (push)
    upstream	https://github.com/team/project (fetch)
    upstream	https://github.com/team/project (push)

     

    → 본인 로컬환경에서 작업하기 위한 공간이다.

     

     

    3) 따라서 팀원들은 본인의 로컬에서 작업을 한 뒤

    2) add/commit 후 본인 원격저장소에 push 한다.

    1) 그 후 중앙원격저장소에 Pull Request를 하고, 리뷰 후 Merge를 한다.

     

     

     

    (해당 게시글은 2번에 대해 정리하였으나, 결국 이번 사이드 프로젝트는 1번 방식으로 운영하기로 하였다..)

     

     

    참고사이트

    milooy.wordpress.com/2017/06/21/working-together-with-github-tutorial/

    salix97.tistory.com/222

    mintparc.tistory.com/138

     

     

     

    728x90
Designed by Tistory.