새소식

ETC/git

Github 초기세팅

  • -

Commit Convention

일관적인 Commit Log를 통해 서로 다른 사람들이 작업한 내용을 쉽게 파악하고, 유지보수 할 수 있도록 하기 위해 Commit을 남기는 규칙

Header

Commit Log의 제목을 나타내는 Header 부분
너무 길지만 않으면 됨
일반적으로 Tag가 붙고, Tag 뒤로 작업의 대략적인 내용이 붙음

Ex) [feat] add rest api code

feat(새로운 기능)
refactor(리팩토링)
fix(버그 수정 및 typo)
style(코드 포맷팅 또는 주석처리)
comment(주석 추가 및 변경)
chore(빌드 수정, 패키지 관리자 수정)
test(테스트 코드)
docs(문서 작업)
remove(파일 삭제)
rename(파일 혹은 폴더명을 수정하거나 옮기는 작업)

 

Body

Header에 적기 너무 길다면 Header를 줄이고 Body에 작성한다.
Header와 한칸 공백을 만들어주면 좋다(Enter)

Body가 생략되는 경우
feat - add multiply function with two variables
Body가 생략되지 않는 경우
refactor - modify api handler logic
  
  - change logic 1
  - change logic 2

 

Footer

해당 작업과 관련된 Issue의 Tag를 붙인다.
Issue Tag를 추가하는 이유는 Commit Log에 Issue Tag를 남기면 Github에서 자동으로 해당 태그를 인식해 관련된 Commit을 연결해준다.
Issue Tags는 #(Issue 번호)로 적는다.

 

 

Commit message template

1. .gitmessage.txt 파일 생성

 touch .gitmessage.txt

2. 편집기를 열고 템플릿 입력 (i 키 누르면 insert)

vim .gitmessage.txt

 

'#'으로 시작하는 부분은 주석으로 commit에 반영되지 않는다.

# Header : ex) [feat] 데이터 전처리

# -- 아래는 Header와 Body 분리 공백 --

# Body : "-"로 구분

# Footer : ex) # issue번호

### Commit type ###
# feat : 새로운 기능
# refactor : 리팩토링
# fix : 버그 수정 및 typo
# style : 코드 포맷팅 또는 주석처리
# comment : 주석 추가 및 변경
# chore : 빌드 수정 및 패키지 관리자 수정
# test : 테스트코드
# docs : 문서 작업
# remove : 파일 삭제
# rename : 파일 또는 폴더명을 수정하거나 옮기는 작업

 

esc -> :wq + Enter로 편집기에서 저장 후 나온다.

3. 템플릿 파일 설정

git config --global commit.template .gitmessage.txt

4. commit 할 파일 add

git add <~.py>

5. git commit 후 나오는 템플릿에 commit message 작성

git commit

 

commit message 작성

esc -> :wq로 저장

6. Footer에 Issue 번호를 추가하면 Issue에서 아래처럼 확인 가능

 

 

 

Pre-commit

git commit 명령어를 수행할 떄 정해진 스크립트들을 실행할 수 있게 해주는 툴
black, flake8, pytest 등 중간에 실행되는 함수를 hook(script)라고 부름

 

1. pre-commit 설치

pip install pre-commit

2. Pre-commit hook 설정

pre-commit에 hook을 추가하려면 ".pre-commit-config.yaml" 파일이 필요하므로 파일 생성

pre-commit sample-config > .pre-commit-config.yaml

 

공백 제거, end-of-file 검사, yaml 검사, 대용량 파일 검사 등이 기본 값으로 등록되어 있음

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files

 

pep8에 맞게 형식을 정리해주는 black 툴을 추가하는 경우

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files
-   repo: https://github.com/psf/black
    rev: stable
    hooks:
    -   id: black

 

3. 작성 후 hook을 설치하기 위해  pre-commit install 및 pip install black 명령어를 사용

pre-commit install
pip install black

 

4. hook 업데이트

pre-commit autoupdate

 

 

Issue

개발 작업 단위

Issue도 Commit Convention처럼 앞에 Tag를 붙여준다.
[FEAT] / [BUG] / [REFACTOR]

먼저 작업해야할 사항이 있다면 Issue로 내용을 등록하고, 각 Issue에 맞는 feature 브랜치를 생성해 작업을 진행

feature 브랜치를 생성할 떄 브랜치 명에 Issue Tag를 붙이면 식별하기 좋다.
feat-2/branch-name (2번 Issue를 해결하는 기능 구현 브랜치)

 

Issue Template

- Background : 왜 이 작업을 해야하는지
- To do: 어떤 작업을 해야하는지
- Issue Tag: 관련된 다른 Issue나 작업은 무엇이 있는지
- Github Repository Setting - Feature - Issue - Setup template에서 등록할 수 있다.
- 실제로는 .github 경로에 추가된다.

## Background
- 

## To Do
- [x]

## Description
-

## 고려사항 및 예외사항
-

 

추가 방법

settings > Features > Set up templates

 

 

Issue를 생성하고 Commit Message에 #1 이라고 작성하면 해당 Issue에 자동으로 Commit Message가 연결된다.

 

 

PR template

Issue template과 다르게 .gitjub 경로에 .md 파일을 직접 추가해주어야 한다.
'.github/PULL_REQUEST_TEMPLATE.md'

## Overview
-

## Change Log
-

## To Reviewer

## Issue Tags
- Closed | Fixed : #
- See also : #

 

 

 

728x90

'ETC > git' 카테고리의 다른 글

git - 협업  (0) 2022.10.20
git - 버전관리  (0) 2022.10.18
git  (0) 2022.07.12
Contents