Post

Commit

Status


01

  • untracked : 한번도 커밋되지 않아 git 이 수정 여부를 추적할 수 없는 상태

  • tracked

    • Non-modified : 마지막 커밋 후 변경 사항이 없는 상태
    • Modified : 마지막 커밋 후 변경 사항이 존재하는 상태
    • Staged : 변경 사항을 확정하여 기록하기 위해 대기하는 상태
    • Committed : 변경 사항이 확정되어 브랜치에 기록된 상태

Status

1
git status
  • status : 현재 체크인하고 있는 로컬 저장소 브랜치의 상태를 조회함
    • 현재 위치하고 있는 로컬 브랜치
    • modified 파일 목록
    • staged 파일 목록
    • untracked 파일 목록

Difference

1
git diff <OPTION> <FILE-NAME>
  • diff : modified 파일의 변경 사항을 조회함

  • <OPTION>

    • None : unstaged areastage area 간 변경 사항 조회
    • HEAD : unstaged area 와 최신 커밋 HEAD 간 변경 사항 조회
    • --staged : stage area 와 최신 커밋 HEAD 간 변경 사항 조회

Commit Process


02

Add

1
git add <FILE-NAME>
  • add : modified 파일을 스테이지 영역에 추가함

Commit

1
git commit <OPTION>
  • commit : staged 파일의 변경 사항을 확정하여 로컬 브랜치에 기록함

  • <OPTION>

    • None
    • -m "COMMIT MESSAGE" : 텍스트 에디터를 열지 않고 커멘트 창에서 커밋 메시지를 작성함
    • --date="YYYY-MM-DD HH:MM:SS" : 커밋한 시각을 명시함
    • --signoff : 커밋 메시지 끝에 커밋한 사용자의 user.nameuser.email 을 표기함
    • --allow-empty : 변경 사항이 없는 빈 커밋을 생성함
    • --amend : 현재 staged 파일들의 변경 사항을 최신 커밋에 추가 기록하여 새로운 커밋을 생성하고, 기존 커밋을 삭제함

Commit Message Rule


03

  • 제목(header), 본문(body), 바닥글(footer)은 빈 행(\n)으로 구분함
  • 본문과 바닥글은 생략해도 무방함
  • 제목은 50글자 이내로 제한함
  • 제목의 첫 글자는 대문자로 작성함
  • 제목 끝에는 마침표를 넣지 않음
  • 제목은 명령문으로 사용하며 과거형을 사용하지 않음
  • 본문에는 HOW 보다는 WHAT, WHY 에 대해서 서술함
  • 본문의 각 행은 72글자 내로 제한함
  • 바닥글에는 참조 정보를 기입함

Type

type 설명
docs 문서 갱신, 주석 추가 또는 데이터의 출처와 처리 방법 등을 문서화
feat 새로운 데이터 분석 기능이나 알고리즘 추가
fix 버그 수정 또는 데이터 정제 과정에서의 오류 수정
perf 성능 향상을 위한 코드 수정
style 코드 스타일 변경 또는 주석의 스타일 수정
refactor 데이터 처리 또는 분석 코드의 구조 변경
data 데이터셋의 추가, 업데이트, 또는 데이터 전처리과정에 관련된 작업
test 새로운 테스트 추가 또는 기존 테스트 수정
chore 빌드 시스템 설정 변경, 라이브러리 업데이트 또는 그 외 기타 작업

Tag


1
git tag -list <OPTION>
  • tag -list : 로컬 브랜치의 태그 목록을 조회함

  • <OPTION>

    • None : 전체 태그 목록
    • <CONDITION.*> : 키워드 CONDITION 을 포함하는 태그 목록
1
git show <TAG-NAME>
  • show : 특정 태그 정보를 상세조회함

    • 태그 주석(Tag Annotation)
    • 태그 작성자(Tagger)
    • 태그 날짜(Date)
    • 해당 태그가 가리키는 커밋

Create

1
git tag <OPTION> <TAG-NAME> <COMMIT-HASH>
  • tag : 특정 커밋에 태그를 부착함

  • <OPTION>

    • None : 기본 태그(LightWeight Tag)
    • -a : 주석 태그(Annotated Tag)

      1
      
        git tag -a <TAG-NAME> -m "Annotation" <COMMIT-HASH>
      

Delete

1
git tag -d <TAG-NAME>
  • tag -d : 로컬 저장소의 특정 태그를 삭제함

  • <TAG-NAME>

    • $(git tag -l) : 로컬 저장소의 모든 태그를 삭제함

Reference

This post is licensed under CC BY 4.0 by the author.