Commit
- 코드의 의미있는 변경을 저장소에 기록하는 것
- HEAD : 현재 체크아웃 된 브랜치의 가장 최신 commit을 가리키는 포인터
- Snapshot 방식 : HEAD commit과 Staging Area에 등록된 파일과의 내용을 비교하여 새로운 commit을 기록함, 즉 파일에서 변경된 부분만 찾아 수정된 내용만 저장하는 방식
Commit Convention
- feat : 새로운 기능 추가
- add: 파일 추가
- fix : 버그 수정
- docs : 문서 파일 추가 및 수정
- style : 코드 스타일 및 포맷팅
- design : 사용자 UI 디자인 수정 (마크업, CSS 등)
- refactor : 코드 리팩토링
- test : 프로덕션 코드의 수정이 없는 테스트, 리팩토링 테스트
- build : 빌드 파일 수정
- ci : CI 설정 파일 수정
- chore : 자잘한 수정이나 빌드 업데이트
- rename : 파일 및 폴더명 수정
- remove : 파일 삭제
Issue Tracker
- Commit 메시지 작성시 관련 이슈 번호를 함께 작성하면 해당 이슈의 타임라인에 Commit 내역이 표시됨
- Closed / Fixed / Resolved 키워드와 이슈 번호를 작성하여 이슈 닫기
$ git commit -m "fix: 버그 수정 (Closed #1)"
Commit 변경 / 취소하기
- commit 메시지 변경 후 원격 저장소에 강제 push
$ git commit --amend -m "message"
$ git push -f origin <branch>
$ git reset --soft <commit_ID>
$ git reset --mixed <commit_ID>
$ git reset --hard <commit_ID>
- git revert로 commit 내용을 되돌리는 새로운 commit 만들기
$ git revert HEAD
$ git revert <commit_ID>