TIL 28. Git&Github 깃 터미널 명령어와 커밋 메시지 작성법

문승준·2021년 9월 25일
2

Git & Github

목록 보기
2/3
post-thumbnail
post-custom-banner

깃 터미널 명령어 (Git Command Line)

깃이 제공하는 수많은 터미널 명령어와 옵션을 확인 하는 방법을 알아보자.
쉽고 빠르게 명령어를 찾고 싶다면 git cheat sheet를 검색해보자.

  • 다양한 git 명령어 확인하기
$ git help

$ git help -a

$ git help <명령어>

  • 환경설정
$ git config

$ git config --list  # 계정 확인하기

  • 로컬 파일 상태 확인하기
$ git status

  • 커밋하기
$ git commit

$ git commit -m "메시지"

  • 아직 push되지 않은 마지막 커밋 메시지 수정하기
$ git commit --amend -m "새로운 커밋 메시지"

  • 커밋 히스토리 확인하기 (log의 다양한 옵션을 활용하자)
$ git log

$ git log --oneline --graph  # 커밋 히스토리와 브랜치를 그래프로 보기

$ git log --oneline

$ git log --pretty=online

$ git log --graph

$ git log --name-status

$ git log --pretty=format:   # 로그 출력 커스터 마이징


깃 커밋 메시지 작성법

Commit이란 무엇인가?

  • 커밋이란 업데이트를 확정하는 순간의 스냅샷이다. 확정된 순간의 코드 상태를 커밋 메시지와 함께 저장소(레포지토리, 깃 디렉토리)에 저장(기록)한다.

  • Commit = hash + message + author + code snapshot

커밋 메시지를 잘 작성하면
1. 커밋 로그의 가독성이 높아지고
2. 협업과 리뷰를 위한 소통이 원활해지며
3. 프로젝트 유지보수성이 높아진다.

다양한 커밋 메시지 스타일이 있지만 그 중 Udacity, AngularJs, Wecode 커밋 메시지 컨벤션을 주로 참고하였다.


훌륭한 Git Commit Message의 규칙

1. 제목(타이틀)과 본문은 개행하여 분리한다.

2. 제목 행은 영문 기준 50자 이내로 작성한다.

3. 제목 행 첫글자는 대문자로 작성한다.

4. 제목 행 끝에 마침표(.) 사용 금지

5. 제목 행은 명령문을 사용한다. (반대는 Don't)

6. 본문은 72자 단위로 개행한다.

7. How 보다는 What과 Why를 설명한다. → 무엇을 왜 했는지 설명

추가로,

8. 검토자가 알고 있는 것을 가정하지 말고 확실하게 설명하자.

9. 자신 코드가 직관적으로 바로 파악될 수 있다고 착각하지 말자.

10. 하나의 커밋에는 하나의 수정사항, 하나의 이슈를 해결한 내용만 남긴다.

11. 팀에서 정한 Commit 규칙을 따르자


커밋 메시지의 구조와 내용

Type: Subject

body

footer

Type

  • Add: 레이아웃 / 기능 추가

  • Modify: 내용 수정

  • Remove: 내용 삭제 (폴더나 파일)

  • Feat: 새로운 기능 추가

  • Fix: 버그 및 오류 수정

  • Docs: 문서 수정 (ex: README.md)

  • Style: 코드 포맷팅이나 세미콜론 누락 수정 → 코드 변경 없음

  • Refactor: 코드 리펙토링

  • Test: 테스트 코드 추가

  • Chore: 빌드 수정, 패키지 매니저 수정

  • Init: 시스템 초기 설정

  • Dir: 폴더 및 파일 구조 변경

Body

  • 문단으로 서술해도 되고 - 로 문장을 나눠도 된다.

  • 현재 시제를 사용한다.

  • 무엇을 왜 변경했는지 작성한다.

  • 어떤 문제가 있었고 해결책이 어떤 효과를 가지는지 설명한다.

  • 커밋 전후를 비교해서 이해할 수 있어야 한다.

  • issue tracker ID를 참조할 때 쓰인다.

  • resolve: 이슈를 해결한 경우

  • related to: 연관된 이슈가 있는 경우


위코드 커밋 메시지 가이드라인

커밋 템플릿

분류: 한줄 제목
- 구현내용 detail
- 구현내용 detail

커밋 분류

Add: - 레이아웃 / 기능 추가

Remove: - 내용 삭제 (폴더 / 파일 삭제)

Modify: - 수정 (JSON 데이터 포맷 변경 / 버튼 색깔 변경 / 폰트 변경)

Fix: - 버그/오류 해결

Refactor: - 코드 리팩토링 (멘토 리뷰 반영 / 스스로 리팩토링 / 중복 코드 제거 / 불필요 코드 제거 / 성능 개선)

Docs: - 문서에 관련된 수정작업(README.md 등)

커밋 메시지 예시

Add: User app 생성 및 회원가입 엔드포인트 추가
- 유저 앱을 만들고, 유저 모델 클래스 생성
- 회원가입 엔드포인트 구현
Remove: data csv 파일 삭제
- 크롤링 결과 저장한 csv이 git에 잘못 올라와 해당 파일 삭제
Fix: 상품 정보 입력시 필수 정보인 상품 사진 url 예외처리
- 필수 입력 값인 image url이 body에 담겨있지 않을 때 key error 오류 처리
- Return되는 오류 메시지 수정 (500 error -> 400 key error with 'image_url')

  • 참조목록

Udacity 커밋 메시지 컨벤션

How To Write a Git Commit Message 번역

커밋 메시지 가이드 프로젝트 만드신 분

좋은 커밋 메시지를 위한 영어 사전

깃 Alias 설정 및 stash, cherrypick, fast forward, reset 등

profile
개발자가 될 팔자
post-custom-banner

0개의 댓글