Skip to content

Git 사용법

WonJoong edited this page Oct 26, 2021 · 1 revision

1.1. Rules

1.1.1. Git Flow

  1. 특정 작업에 대한 이슈를 생성한다.
  2. Feature branch를 생성한다.
  3. Add - Commit - Push - Pull Request - Merge의 과정을 거친다.
    1. Merge 중 어려운 점이 있으면 같이 해결하거나 슬랙으로 의논한다.
  4. 종료된 Issue와 Pull request의 Label과 Project를 관리한다.

1.1.2. ETC.

협업 시 준수해야 할 규칙은 다음과 같다.

  • develop에서의 작업은 원칙적으로 금지한다.
  • 자신이 담당한 부분 이외에 다른 팀원이 담당한 부분을 수정할 때는 Slack을 통해 변경 사항을 전달한다.
  • 본인의 Pull Request는 본인이 Merge한다.
  • Commit, Push, Merge, Pull Request 등 모든 작업은 앱이 정상적으로 실행되는 지 확인 후 수행한다.

1.2. Branch

Branch의 Naming Rule은 1.2.1을 따른다. Branch는 가능한 한 작업단위, 기능단위로 생성하며 이는 Issue를 기반으로 한다. 단, 같은 범위의 기능이라면 같은 브랜치를 사용한다. 예를 들면, 회원가입 기능 구현 시 아이디 중복 체크, 비밀번호 확인, 아이디 유효성 확인 등은 회원가입 하나로 구분한다.

1.2.1. Branch Naming Rule

  • main : 개발이 완료된 산출물이 저장될 공간
  • develop : feature 브랜치에서 구현된 기능들이 merge될 브랜치
  • feature : 기능을 개발하는 브랜치, 이슈별/작업별로 브랜치를 생성하여 기능을 개발한다
  • fix : 버그를 수정하는 브랜치

feature/이슈번호-기능설명, fix/이슈번호-기능설명

Branch를 생성하기 전 Issue를 먼저 작성한다. Issue 작성 후 생성되는 번호와 Issue의 간략한 설명 등을 조합하여 Branch의 이름을 결정한다. <Prefix>/<Issue_Number>-<Description> 의 양식을 따른다.

1.3. Issue

작업 시작 전 Issue 생성이 선행되어야 한다. Issue는 작업 단위, 기능 단위로 생성하며 생성 후 표시되는 Issue Number를 참조하여 Branch Name과 Commit Message를 작성한다.

이슈 생성 시 Github 오른편의 Assignee, Label, Project, Linked Pull Requests 를 적용한다. Assignee는 해당 이슈의 담당자, Label에는 담당자를 추가한다. 이슈 관련 작업이 끝나면 Issue를 Close한다.

이슈는 아래 양식으로 탑재한다.

## Overview (Required)
-

1.4. Commit

1.4.1. Commit Rule

[<Prefix>] <Issue_Number> - <Description>

  • FIX : 버그, 오류 해결
  • FEAT : 새로운 기능 구현
  • DOCS : README나 WIKI 등의 문서 개정
  • REFACTOR : 내부 로직은 변경 하지 않고 기존의 코드를 개선하는 리팩토링 시
  • CHORE : 그 이외의 잡일/ 버전 코드 수정, 패키지 구조 변경, 파일 이동, 가독성이나 변수명, reformat 등
  • UI : 레이아웃 코드만 추가되거나 수정되었을 시
  • TEST : 테스트 코드 추가

1.4.2. Commit Example

  • [FEAT] #7 - Room DB 기반 작업 추가
  • [DOCS] #24 - 리드미 파일에 개발자 추가

1.5. Pull Request

Pull Request는 아래 양식으로 요청을 보낸다.

## Issue
- close #ISSUE_NUMBER

## Overview (Required)
- [ ] 

## Links
-

## Screenshot
Before | After
:--: | :--:
<img src="" width="300" /> | <img src="" width="300" />

1.6. Code Review

  • 코드리뷰는 데일리 스크럼 이후 30분간 진행한다.
  • Pull Request를 올리면 즉석으로 코드리뷰를 작성해도 된다.

1.7. Label

  • 라벨은 이슈에 대한 담당자로 구성한다.
  • Challenge : 추후 도전해볼만한 이슈에 대해 다루는 태그.

1.8. Project

  • 주차별로 Project를 나눈다.
  • Project명은 Week1, Week2와 같은 형식으로 작성한다.

1.9. WIKI

  • 수정할 사항이 있으면 슬랙에서 의논 후 수정한다.
Clone this wiki locally