깃이 제공하는 수많은 터미널 명령어와 옵션을 확인 하는 방법을 알아보자.
쉽고 빠르게 명령어를 찾고 싶다면 git cheat sheet를 검색해보자.
$ git help
$ git help -a
$ git help <명령어>
$ git config
$ git config --list # 계정 확인하기
$ git status
$ git commit
$ git commit -m "메시지"
$ git commit --amend -m "새로운 커밋 메시지"
$ 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 = hash + message + author + code snapshot
커밋 메시지를 잘 작성하면
1. 커밋 로그의 가독성이 높아지고
2. 협업과 리뷰를 위한 소통이 원활해지며
3. 프로젝트 유지보수성이 높아진다.
다양한 커밋 메시지 스타일이 있지만 그 중 Udacity, AngularJs, Wecode 커밋 메시지 컨벤션을 주로 참고하였다.
1. 제목(타이틀)과 본문은 개행하여 분리한다.
2. 제목 행은 영문 기준 50자 이내로 작성한다.
3. 제목 행 첫글자는 대문자로 작성한다.
4. 제목 행 끝에 마침표(.) 사용 금지
5. 제목 행은 명령문을 사용한다. (반대는 Don't)
6. 본문은 72자 단위로 개행한다.
7. How 보다는 What과 Why를 설명한다. → 무엇을 왜 했는지 설명
추가로,
8. 검토자가 알고 있는 것을 가정하지 말고 확실하게 설명하자.
9. 자신 코드가 직관적으로 바로 파악될 수 있다고 착각하지 말자.
10. 하나의 커밋에는 하나의 수정사항, 하나의 이슈를 해결한 내용만 남긴다.
11. 팀에서 정한 Commit 규칙을 따르자
Type: Subject
body
footer
Add: 레이아웃 / 기능 추가
Modify: 내용 수정
Remove: 내용 삭제 (폴더나 파일)
Feat: 새로운 기능 추가
Fix: 버그 및 오류 수정
Docs: 문서 수정 (ex: README.md)
Style: 코드 포맷팅이나 세미콜론 누락 수정 → 코드 변경 없음
Refactor: 코드 리펙토링
Test: 테스트 코드 추가
Chore: 빌드 수정, 패키지 매니저 수정
Init: 시스템 초기 설정
Dir: 폴더 및 파일 구조 변경
문단으로 서술해도 되고 -
로 문장을 나눠도 된다.
현재 시제를 사용한다.
무엇을 왜 변경했는지 작성한다.
어떤 문제가 있었고 해결책이 어떤 효과를 가지는지 설명한다.
커밋 전후를 비교해서 이해할 수 있어야 한다.
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')