GitHub로 협업하기

최연재·2022년 7월 14일
0

컨퍼런스&세미나

목록 보기
2/3
    1. Git과 GitHub의 차이
    1. Git의 특징(분산 버전 관리 시스템)
    1. 충돌 관리
    1. Repository Workflow
    1. Convention(협약)
    1. Management
    1. Collaboration(협업)
    1. Pull Request

1. Git과 GitHub의 차이

GitHub는 Git을 활용한 code hosting platform이다.

2. Git의 특징

1. Git

  • 분산(Distributed) 버전 관리 시스템
    \to 분산이란? = 각각의 컴퓨터에 저장소(Repository)가 분리되어 있다.(commit을 하면 자신의 repository에 쌓이고, push를 하면 remote repository에 올라가는 거!!)

2. 흐름

  1. Clone 또는 Init
    Local Repsitory 생성
  2. commit
    Local repository에 작업이 쌓이는 것
  3. push(local과 remote sync를 맞추는 것)
    Remote repository에 작업이 올라가는 것
  4. pull(local과 remote sync를 맞추는 것)
    Remote repository에서 Local repository로 작업을 가져오는것

3. 충돌 관리

1. 충돌이 발생하는 이유

협업자 간 Git History 불일치

2. 충돌 분석

  • 충돌 위치(파일, 라인)
  • 충돌 유형(단순 코드 스타일 차이, 로직 변경 또는 리팩터링, 동시 추가)
  • 충돌 원인(이력이 틀어진 시점)

3. 하면 안되는 것

  • 발생한 충돌을 의논 없이 수정하기(단순 코드 스타일 제외 = 코드 스타일을 정의해놨다는 전제하에는 지워도 됨)
  • git push --force(branch랑 commit history가 틀어짐)

4. Repository Workflow

1. Centralized 와 Forking의 차이


(1) Centralized

  • "Origin - Local"로 구성
  • Remote repository(그룹저장소)가 origin이 되고, Local repository(개인 저장소)가 Local이 됨

(2) Fork

  • "Upstream - Origin - Local"로 구성
  • Remote repository(그룹저장소)가 Upastream이 되고, Local repository(개인 저장소)가 Origin이 됨
  • push를 하면 개인저장소(origin)에 들어감 \to 그룹저장소에는 반영이 안됨
  • PR로 개인 저장소와 그룹 저장소 sync 맞추기

5. Convention(협약)

(1) Coding Style
Naming, Indentation, Quote
(2) Structure
File / Directory, Architecture
(3) Commit
Conventional Commits, Angular Commit Message
(4) Branching
Git Flow, GitHub Flow, GitLab Flow
(5) Automation
CI / CD

6. Management

1. Issue

  • 문제
  • 할 일(TODO)
  • 관심사

2. Issue를 잘 사용하는 법

  • '레이블'을 달아서 시각적으로 만들기
  • 'template' 사용하기(.github를 만들고, template 생성하면 됨)
  • 'Project(진행상황별로 기록)와 'Milestone(기한을 맞추어서 작업해야 하는 것)'사용

3. GitHub Issue의 Pros and Cons(Jira와 같은 다른 도구와 비교)

(1) 장점

  • 접근성이 높다.
  • 도구의 파편화를 막을 수 있다.
  • Jira보다 빠르다.
  • 누구나 볼 수 있다.(Jira는 초대된 팀 멤버만 볼 수 있음)

(2) 단점

  • Project와 Milestone 등이 아직 불편함.

7. Collaboration(협업)

1. 존중합시다.

2. 친절합시다.

3. 겸손합시다.

8. Pull Request

  • 코드를 통합하는 방법 중 하나
  • Git의 기능이 아닌, GitHub의 기능
  • 코드 리뷰 수행 가능

이 글은 DND에서 제공된 'GitHub로 협업하기' 세미나를 듣고 정리한 내용입니다.

profile
가보자고

0개의 댓글