Git_[5] Pre -Commit 설치.

Leejaegun·2024년 9월 15일

Git

목록 보기
8/32

1. Pre-commit 이란?

코드 변경을 Commit 할 때 code formating 을 자동화하는 툴.

2. 실습.

2.1 먼저 Pre-commit 추가 Issue 생성

Issue -> Feature Request 에서

Issue 생성헤서 팀원들에게 오늘 뭐 할건지 알려주기.

2.2 작업 브랜치 생성

① 먼저 main 브랜치로 가서 -> git pull명령어를 통해 새로운 업데이트 사항을 local repo에 받아옴.

git checkout main
git pull origin main

feat-3/pre-commit 브랜치를 생성 후 브랜치 변경

git checkout -b feat-3/pre-commit

2.3 pre-commit 설치

pip install pre-commit을 통해 pre-commit 설치

pip install pre-commit

pre-commit sample-config > .pre-commit-config.yaml을 통해 yaml 파일 생성


🤔 yaml 이 뭐지?
✍️ yaml은, YAML Ain't Markup language로 사람이 읽기 쉬운 데이터 직렬화 방식으로 데이터를 저장 형식으로 사용.

  • 들여쓰기를 사용해 구조화된 데이터를 직관적으로 표현함.
# 1. 키-값 쌍(딕셔너리)
name: John
age: 30
address:
  city: New York
  zipcode: 10001

# 2.리스트 (각 항목은 - 로 구별)
languages:
  - Python
  - JavaScript
  - C++

# 3. 복합구조
employees:
  - name: Alice
    age: 28
    skills:
      - Python
      - Data Science
  - name: Bob
    age: 35
    skills:
      - JavaScript
      - DevOps

# ex) Docker compose
version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: postgres
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password


③ .pre-commit-config.yaml 파일을 다음과 같이 변환함

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.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: 24.8.0
    hooks:
    -   id: black

✍️ 상세히 추가된 부분 알아보자.
추가된 부분은 이 밑의 4부분인데 각각의 의미를 알아보자.

-   repo: https://github.com/psf/black
    rev: 24.8.0
    hooks:
    -   id: black

repo: https://github.com/psf/black : pre-commit 도구에서 사용할 블랙 포맷터의 Git 저장소.

rev: 24.8.0 : Black의 특정 버전

hooks : Git 커밋에 실행될 작업 목록을 정의하는 섹션.
-> 여기는 black 포맷터를 실행하는 작업이 포함됨.

id:black : hooks에서 어떤 작업을 실행할지 정의하는 항목, id:black은 black 포맷터를 실행하겠다는 뜻.


pre-commit autoupdate 를하면 자동으로 버전이 최신버전으로 yaml이 바뀐다.

pre-commit install

⑥ add -> commit 해서 원격에 추가해줌

git add .pre-commit-config.yaml
git commit -m "feat :Add pre-commit config
>
> #3" #3번 tag 

⑦ pre-commit 을 실행해서 format을 맞추어 보자.

pre-commit run --all-files

⑧ 그후 git status라고 치면 이렇게 나온다.

⑨ 이제 commit 해보자

git add .
git commit -m "refactor : Apply pre-commit"

#마지막으로 push
git push origin feat-3/pre-commit

2.4 마지막으로 PR 승인받으면 끝

이러면 진짜 끝.

profile
Lee_AA

0개의 댓글