Git으로 협업하기

JJ·2022년 7월 7일

Git

목록 보기
5/5
post-thumbnail

내가 보려고 정리한 git, github, flow로 협업하기

  1. New organization 생성 (팀장의 일)

New organization 버튼을 누르면 다음과 같은 화면이 나온다.

원하는 플랜을 선택한다.

조직 이름과 조직의 소식에 관해 메일을 받을 이메일을 입력해준 뒤 동의 후 next 버튼을 눌러주면 된다.

조직에 추가할 사람의 깃헙 유저네임이나 이메일을 적어 초대해줘도 되고 혹은 스킵하고 나중에 추가해줘도 된다.

그 후 생성한 organization 관련 설문조사같은 화면이 나오는데 선택하지 않아도 Submit이 가능하다.
원한다면 선택하자.

New Organization 생성이 완료됐다! 😊

  1. Repository 만들기 (팀장의 일)

Organization을 만든 팀장이라면 팀원들과 협업하기 위해 Repository를 만들어야 한다.

Create a new repository 를 누르면 다음과 같은 화면이 나온다.

원하는대로 만들도록 하자.
다만 무료플랜에서 Private을 사용하게되면 사용하는데에 제약이 조금 있다고 하니 웬만하면 Public으로 만들도록 하자.

Issues

Issues는 팀원들이 각자 해야할 일, 할 일, 버그 리포트 등을 올리는공간이라고 한다.

Projects

Projects는 프로젝트의 진행상황을 볼 수 있도록 scrum board를 만드는 곳이다.

New classic project 버튼을 클릭해 새 프로젝트를 만들자.

코드 리뷰를 위해 Project template는 Automated kanban with reviews를 선택하여 생성해준다.

팀원이 이슈를 만들면 이곳에 이슈가 쌓인다.

이제 팀원을 초대하기 위해 다시 조직 메인화면으로 들어왔다.

Invite someone을 눌러 초대해보자.

초대하기를 누르면 위처럼 팀원으로 초대할지, 팀장으로 초대할지 선택지가 나온다.

원하는 것을 선택하여 초대장을 보낸다.

  1. Issue 생성하기 (팀원의 일)

팀원은 위와같은 초대장을 받게된다.

수락하면 다음과 같은 화면이 뜬다.

join 버튼을 눌러 가입을 완료하자.

작업하고 있는 저장소에 가서 New issue를 만들어보자.

본문의 내용에 description과 tasks에 할 일을 단계별로 적고 submit new issue 버튼을 누르자.

이렇게 이슈를 생성하면 팀장이 Assignee란에 누가 해당 issue를 맡을지 배정해줄 수 있다.

  1. Assignee 지정 (팀장의 일)

팀장의 화면에서도 다음과 같이 이슈가 생성된 것을 볼 수 있다.

Assignee 칸을 눌러 Assignee를 지정해주자.
Assignee는 최대 10명까지 지정할 수 있다.

위처럼 원하는 라벨을 지정해 줄수도 있다.

그리고 프로젝트 페이지로 돌아가 아까 만들어 놓은 프로젝트를 선택한 후 방금 Assignee를 지정한 issue 카드를 To do에 넣자.

  1. 작업할 develope branch 만들기

팀장은 조직 저장소의 원격 주소를 복사한 후 저장소를 클론한다.

그 뒤 develop 브랜치를 강제로 생성해준다.


develop branch를 생성한 이후에는 이 조직의 원격 주소나 원격 저장소에 직접 작업할 일이 없다고 보면 된다.

  1. Fork하여 작업하기 (팀원, 팀장의 일)

Organization에서 작업을 할때는 !무조건! fork 하여 작업을 진행해야 한다.

fork 하지 않고 직접적으로 작업을 하는 것은 마치 git repository의 main에 바로 작업을 하는 것과 똑같다.

fork를 누르면 위와 같은 화면이 나오는데, Create fork를 눌러 완성하자.

버튼을 누르면 개인의 계정에 작업물이 clone 된 것을 확인할 수 있다.

포크된 저장소의 원격 주소를 복사해 원하는 디렉토리에 클론해준다.

원하는 디렉토리에 저장소를 클론했다면 git flow init을 해서 작업을 시작하자.

  1. git flow

git flow로 작업하게 되면 주로 main이 아닌 develop 브랜치에서 작업이 이루어진다.

git flow init을 입력했다면 그 뒤 git flow feature start <원하는 작업 이름> 을 입력해 작업을 시작할 공간을 만들자.

index.html 파일을 만들어 저장해줬으니 add, commit을 해보자.

작업을 어느정도 마쳤으면 아까 issue 페이지에 적어놓은 Tasks를 체크해 나가면 된다.

이것을 체크해줘야 실시간으로 다른 팀원이 내가 어떤 작업을 하고 있는지 알 수 있다.

작업을 완료했다면 feature 브랜치를 닫아주면 된다.

git flow feature finish <작업 이름>

push를 해준 후 github에 잘 올라갔는지 확인해준다.

  1. pull request (팀원, 팀장의 일)

개인적으로 작업을 끝마쳤다면 이제 조직 저장소에 올려야 한다.

pull requests 페이지로 이동해 오른쪽 칸에는 push한 자신의 저장소의 develop 브랜치를 선택해주고, 화살표가 가리키고 있는 방향인 왼쪽 칸에는 조직의 develop 브랜치를 선택해준다.

절대 브랜치를 헷갈리면 안된다.

Create pull request 버튼을 눌러주면 다음과 같은 화면이 나온다.

위의 pull request를 적기 전에, 아까 우리가 만들었던 issue를 보면 제목 옆에 #1 처럼 번호가 붙어있는 것을 볼 수 있다.

우리가 지금 pull request 하려 하는 작업물은 1번 issue를 토대로 한 작업물이다.

따라서 이 pull request 를 통해 1번 issue를 해결한다는 것을 알려주기 위해 다음과 같이 comment 란에 close 혹은 resolve #1을 적어주자.

완료하면 pull requests 창이 다음처럼 바뀐다.

  1. pull requests 확인하기 (팀장의 일)

팀장은 확인한 뒤 Files changed 창에 들어가 바뀐 코드들을 리뷰하고 다음과 같이 코멘트도 달 수 있다.

팀장은 코멘트를 달고 팀원이 코드 내용 중 바꿔줬으면 하는 부분이 있다면 Review changes의 세번째 칸의 Request changes를 선택해 Submit review를 클릭한다.

바꿔줄 내용이 없다면 viewed를 눌러주고

Approve 칸을 선택해 Submit 버튼을 눌러준다.

  1. Merge pull request (팀원의 일)

리뷰와 승인이 끝난 pull request에는 위와 같이 Merge pull request 버튼이 생긴다.

클릭하면 pull request 창이 다음과 같이 Merged라고 바뀌며 합치기가 완료됐으니 안전하게 복사했던 나의 브랜치를 삭제해도 된다는 메세지가 뜬다.

code 창의 develop 브랜치로 들어가 제대로 내 코드가 올라왔는지 확인하자

잘 합쳐져 있는 것을 확인할 수 있다. 😎

  1. projects 관리 (팀장의 일)

이슈가 만들어진 후에 팀장과 팀원이 서로 어떤 작업이 어떻게 진행되고 있는지 한눈에 알아볼 수 있도록 팀장은 이슈를 프로젝트에서 관리할 수 있다.

main 브랜치에서 작업하면 git flow에서 자동으로 옮겨주지만 다른 브랜치에서 작업을 하면 수동으로 옮겨줘야한다.

To do : 작업 진행 전

In progress : 작업 진행 중

Review in progress : 작업 리뷰 중

Reviewer approved : 작업 리뷰 마침

Done : 작업 마침

  1. 저장소 최신 상황으로 업데이트하기

git 에 팀의 저장소 원격 주소를 등록해야하는데, 등록은 다음과 같이 할 수 있다.

원격 주소 복사 후 git remote add (원하는 이름) (주소) 를 git에 입력한다.

나의 작업물을 push 하는 곳은 개인 작업물 저장소인 origin이며 원격 저장소의 최신 상황을 반영하여 가져오는 곳은 팀 저장소 원격 주소인 upstream이다.

위처럼 등록해놨기에 팀 원격 저장소의 최신 상황을 반영하기 위해 간단히 git pull upstream develop을 해주면 된다.

profile
신규...개발자가...되자...

0개의 댓글