멋쟁이사자처럼 at 인하대

Github로 협업하기

8기 운영진 이대현

내 코드 저장, 보관용

공동 프로젝트 관리 + 상호학습 촉진

1. github의 멋진 기능

Issue, Pull Request, Wiki 사용법을 배워두자!

2. 프로젝트 경험을 쌓아야 하는 이유

함께 더 나은 코드를 만들 수 있다

버그 방지, 가독성 및 코드효율 향상

2. 프로젝트 경험을 쌓아야 하는 이유

자유롭게 질문하고 배운 것을 공유한다

동료의 코드 = 훌륭한 학습자료

2. 프로젝트 경험을 쌓아야 하는 이유

✅ 꼼꼼한 코드리뷰를 받을 수 있어서 내 코드가 개선됨

✅ 나보다 잘하는 동료의 코드를 보면서 많이 배움

✅ 막혔을 때 같이 고민해주는 이가 있음

✅ 심지어 해결책도 들고 나타나줌

✅ 무엇보다 혼자하는 것보다 훨씬 재밌음 !

3. 팀 레포 만들기

  1. organization을 만든다

  2. team을 만들고, people 탭에서 멤버로 초대한다.

  3. 프로젝트 repository 를 만든다.

  4. repository contributor로 팀원들을 초대하고 권한을 준다.

개인 프로필에 팀 표시됨

4. 협업 플로우

이슈 등록

이슈 작업

PR 작성

코드리뷰+승인

PR 반영

작업할 branch 생성, 코드 작성 + push

승인된 코드를 master에 merge

4. 협업 플로우 (1)

이슈 등록

"DB에 새 모델을 추가해야할 것 같아요"

"NavBar가 반응형으로 동작하질 않네요 ㅜㅜ 수정이 필요합니다"

issue 탭

issue 등록버튼

issue 별로 라벨 지정

4. 협업 플로우 (2)

이슈 등록

이슈 작업

1) 작업할 branch 생성

git checkout -b <새 브랜치이름>

branch는 기능/이름 으로 파기!

  • checkout <브랜치명> : 해당 브랜치로 이동한다.
  • -b <브랜치명> : 브랜치를 생성한다.
  • git branch : 존재하는 브랜치 확인.

항상 모든 작업은 브랜치를 파서 한다. 마스터 브랜치에 직접 push 금지.

4. 협업 플로우 (2)

이슈 등록

이슈 작업

2) 코드 작성 + add, commit, push

해당 브랜치 내에서 수정작업을 완료했으면, 브랜치에 수정사항을 push한다.

❌주의❌

내가 작성한 코드가 다른 팀원의 리뷰없이  master 브랜치로 push 되면 안되기 때문에, 우선 자기 branch에 push하고 리뷰를 기다린다!

git push -u origin <해당 브랜치명>

❌주의2❌

push 하기 전 항상 master 브랜치를 pull 받아 최신 브랜치로 업데이트 하기! 

git pull origin master

4. 협업 플로우 (3)

이슈 등록

이슈 작업

PR 작성

navBar/daehyun 브랜치에 push 한 후

github 저장소 Pull requests 탭에 들어가보면  create pull request 라는 초록 버튼이 활성화 되어있다.

4. 협업 플로우 (3)

이슈 등록

이슈 작업

PR 작성

PR 내용은 최대한 상세하게, PR 단위는 최대한 작게

Reviewers, Assignees, Labels 도 잘 설정해주자!

4. 협업 플로우 (4)

이슈 등록

이슈 작업

PR 작성

코드 리뷰 + 승인

1. 해당 브랜치로 이동해서, 혹은 내 브랜치에 pull     받아서 확인한다.

 

 

2. 리뷰를 요청받은 PR에 들어가서

    Add your review을 클릭한다.

 

3. 코멘트를 적은 뒤 approve(승인)한다.

코드 리뷰 방법

git checkout navBar/daehyun 혹은
git pull origin navBar/daehyun (내 브랜치로 병합)

4. 협업 플로우 (4)

이슈 등록

이슈 작업

PR 작성

코드 리뷰 + 승인

이 부분을 따로 빼서 함수로 만드는건 어떨까요?”

“navBar가 정상적으로 동작하네요! 수고하셨습니다

✅ 리뷰어는 PR에 대해 3가지 의사표현을 할 수 있다.

  

Comment : 그냥 코멘트만 달아줌.

Request changes : 코드에서 버그를 발견하면 다시 수정해달라고 요청할 수 있음.

Approve : 이 코드가 merge 되는 것에 동의함.

4. 협업 플로우 (5)

이슈 등록

이슈 작업

PR 작성

코드 리뷰 + 승인

PR 반영

최소 2명(팀마다 정하기 나름)의 리뷰를 받아야 master에 merge 가능

코드리뷰

받기 전

코드리뷰

받은 후

merge 가능. 클릭!

4. 협업 플로우 (5)

이슈 등록

이슈 작업

PR 작성

코드 리뷰 + 승인

PR 반영

master 브랜치에 바로 push 못하게 설정하는 방법 (깃허브)

settings -> branches -> add rule 클릭

- Branch name pattern 에 master 입력

- Require pull request reviews before merging 2명으로 체크 

5. 충돌 시 해결방법

기능별로 브랜치를 파서 작업하면 웬만하면 충돌이 나지 않지만, 가끔 동료의 브랜치를 pull 받거나 마스터에 merge 할 때 충돌이 생길 수 있음.

충돌이 나더라도 코드는 살아있으니 걱정할 필요 없음.

vscode가 충돌 난, 서로 다른 코드 두 가지를 모두 보여주면서

둘 중에 하나 선택하라고 함. 적절히 수동으로 수정하면 됨. 

6. 프로젝트 Wiki 만들기

- Edit 버튼을 눌러, 마크다운 문법으로 작성

- 링크를 넣고싶다면 New Page 적절히 활용

7. 개발일지 작성법

  •          라벨 붙여서 이슈에 생성
  • 최소 주 1회, 회의 할 때마다 기록해서 작성하면 더 좋겠죠?
  • 양식

 

8. 과제

  1. 팀원들 각자 브랜치 파서 PR + 코드리뷰 해보기
  2. 프로젝트 주제, 팀원소개 Wiki 만들기
  3. 1주차 회의록 Issue에 올리기
Made with Slides.com