ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #7 팀플과 협업을 위한 git/github - Forking Workflow(1)
    git/팀플과 협업을 위한 git 시리즈 2021. 8. 26. 14:49

    Forking Workflow는 총 3편으로 나누어서 진행할 예정이다.

    협업을 진행하면서 fork, clone, branch, pull, pull request, merge 를 익혀보겠다.

     

    일단 우리가 할 협업 방식은 Forking Workflow 라는 협업 방식이다.

    이것에 대해서는 다음편에 설명할 에정이니, 이번편은 편하게 따라오면 되겠다.

     

     

    1. 원본 repository를 내 저장소로 fork 하기
    2. 내 로컬(pc)으로 clone 하기
    3. 원본 저장소를 remote 해주기
    > 브랜치가 무엇이고 어떻게 협업할까? Forking Workflow??
    4. 새로운 브랜치를 생성하기
    5. 해당 브랜치에서 개발하기
    6. fork한 나의 repository를 원본 repository에 병합하기 위해  PR(Pull Request) 생성하기
    7. 프로젝트 관리자가 확인 및 리뷰 후, 원본 repository에 merge
    8. 사용했던 브랜치 삭제
    9. 원본 repository를 pull 해서 fork한 내 repository를 최신화

    4번으로 돌아가서 새로운 기능 개발

    실습환경 만들기

     

    6강까지 사용했던 저장소를 가지고 쭉 진행을 할 예정이다.

    그러나 혹시 처음부터 복습을 하고 싶다면, 새로운 repository를 만들어서 진행해도 좋다.

     

    우리는 지금부터 '멋진 프로젝트'를 진행할 것이며, 그 프로젝트가 들어있는 폴더를 생성했다.

    그리고 멋진 프로젝트 폴더 안에 '프로젝트 설정파일.txt'를 만들어주자.

    내용은 어떤 내용이든 상관없다.

     

     

    그리고 바로 commit과 push를 해주자.

     

     

    이제 우리는 프로젝트 개발의 시작을 위해 설정파일까지 모두 정리했으니,

    각 구성원들이 미리 협의된대로, 실제 프로덕트를 개발해야 한다.

     

     

     

     


    새로운 프로젝트 기여자

     

    *중요*
    필자는 여러분에게 확실하게 보여주기 위해,
    다른 노트북에서 다른 계정을 사용하여 협업을 하는 과정을 보여줄 것이다.

    과정을 완전히 똑같이 따라하기 위해서는 github 계정이 하나 더 필요하다.
    그리고 동일 컴퓨터에서 진행하려면, git config와 kraken을 새로운 계정에 맞추어서 다시 설정해야한다.

    그러나 실습환경 구축이 귀찮거나, 마땅치 않은 분들은 fork, clone을 생략하고, 브런치만 만들어서 해도 좋다.
    fork, clone도 물론 중요하지만, brunch와 pull request 가 핵심 내용이며,
    실제 협업에 투입되었을때 fork 와 clone을 사용해도 문제가 없을 것이다.

    Forking Workflow 에서 fork를 못하는 것은 아쉽지만,
    fork를 빼면 사실 Feature Branch Workflow 와 비슷한 방식이다.

    혹시 실습 환경 구축을 건너뛰는 독자라면,
    이번 편은 읽어보고 이해만 하면 되겠다.

     

     

    이제 새로운 프로젝트 기여자가 등장할 예정이다.

    "깻묵" 이라는 팀원이다.

    (깻묵은 식물에서 기름 짜고 남은 찌꺼기다. 찌꺼기 치고는 이름이 귀엽다.)

     

    혹시 여러분이 프로젝트를 생성할 때 private으로 생성했다면, 이 친구를 contributor로 초대를 따로 해야한다.

    방법은 쉬우니 구글링해서 잘 찾아보자.

     

    Front-End 개발자인 깻묵은 이 프로젝트가 마음에 들었는지,

    이 프로젝트에 참여하여 메인페이지를 개발하고 싶어한다.

     


    1. 원본 repository를 내 저장소로 fork 하기

    깻묵의 계정으로 접속하여 git-test 를 들어가보면, fork 라는 버튼이 우측 상단에 있다.

     

     

    fork 란?

    fork 는 다른 사람의 repository를 내 repository로 복사해서 가져오는 것이다.

     

    그러면 본캐의 repository를 fork 해보자.

    fork가 완료되었다.

    잘 보면 깻묵의 repository에 git-test가 생성된 것을 확인할 수 있다.

    그리고 밑에 forked from JinuCheon/git-test 라고 하며, 원본 repository를 알려준다.

    참고로 이 원본 repository를 "upstream" 이라고 한다. 잠깐 기억해두자.

     

     


    2. 내 로컬(pc)으로 clone 하기

    깻묵은 이제 자신의 pc에 이 repository를 다운받고, 메인페이지를 개발하고 싶다.

    그러기 위해서는 git clone 을 써야한다.

     

    $ git clone [repository 주소]

    git clone 은 repository 를 내 로컬(pc)에 다운로드 하는 역할을 한다.

    추가적으로 remote 라는 작업도 해주는데,

    잘 기억해보면 우리가 3강에서 remote를 직접 해주었다.

     

    다시 복습하자면, remote는 로컬에 있는 git repository와, github에 올라가있는 repository를 연결해준다.

     

     

    아무튼, [repository 주소]에는 본인이 fork했던 repository의 ssh 주소를 넣어주어야한다.

     

     

     

    이렇게 하면, 깻묵의 workspace 폴더에 git-test 가 생긴다.

    ls 명령어로 잘 받아졌는지 확인해보자

     


    3. 원본 저장소를 remote 해주기

    추가적으로 해주어야 할 작업은 원본 저장소(본캐의 저장소)를 remote를 해놓아야 한다.

     

    어짜피 fork를 통해 다른 repository를 통해 분리해서 작업하고 있는데, 왜 원본 저장소도 연결을 해놓아야할까?

     

     

    그 이유는 나만 작업하는게 아니기 때문이다.

    다른 프로젝트 기여자가 나보다 먼저 작업을 끝내서 원본 repository가 변경된다면,

    나는 fork한 내 repository도 최신화를 해주어야 하기 때문이다.

     

    최신 repository의 변경사항을 다운로드 하는 것을 pull 이라고 하는데, 이것은 10강에서 등장할 예정이다.

    지금은 "프로젝트 시작 전에, 원본 저장소를 remote 해두었다." 정도만 기억하고 있자.

     

     

     

     

    일단 지금 내가 어떤 github repository에 연결되어 있는지 잠깐 확인을 해보자.

    git remote -v

     

    remote -v 를 사용하면, 현재 remote 되어있는 상태를 보여준다.

    잠깐 형태를 분석해보자.

     

    [repository 가명] [repository 주소]

    origin git@github.com:kketmuk/git-test.git

     

    지금까지 가끔 등장했던 origin의 정체가 밝혀졌다.

    그냥 repository의 가명을 정해둔 것이었다. (혹은 remote 연결의 이름이라고 봐도 무방하다.)

     

    즉, 내가 fork한 repository는 origin 이라는 이름으로 연결이 되어있는 것이다.

     

     

     

    설명이 길었다.

    그러면 원본repository (upstream) 를 remote 해보자.

    forked from ~~ 을 클릭하면, 원본 repository로 쉽게 이동이 가능하다.

     

    늘 그랬듯이, SSH 주소를 복사한다.

    그리고 원본 레파지토리를 등록하자.

    $ git remote add [remote 이름] [github 주소]

     

    그리고 다시 조회해보자.

    성공적으로 연결이 되었다.

    댓글 0

Designed by Tistory.