개발자들간에 작업을 할 떼 커밋 컨벤션을 통일하기 위해서 작성 양식같은 것을 설정하곤 한다.
기능을 추가할 때는 feat, 버그를 수정할 때는 fix와 같은 타입을 쓰면서 작업을 하는데 간혹 이건 어떤 타입의 커밋이지..? 헷갈렸던 경험이 있다.
그럴때마다 작성해두었던 커밋 컨벤션 작성 양식 페이지를 들어가 찾아봐야만 했고, 이러한 방식이 그닥 효율적이지 않다고 느끼고 있던 찰나 commit template을 따로 설정할 수 있다는 사실을 알게 되었다.
commit template을 작성하는 방법은 다음과 같다.
commit template 생성 방법 (터미널 기준)
1. 터미널에서 .git이 있는 현재 프로젝트 폴더에 다음 명령어를 입력
vi .gitmessage.txt
2. .gitmessage.txt 파일에 원하는 템플릿 작성 후 저장
################
# <타입> : <제목> 의 형식으로 제목을 아래 공백줄에 작성
# 제목은 50자 이내 / 변경사항이 "무엇"인지 명확히 작성 / 끝에 마침표 금지
# 예) Feat: [#이슈번호] 로그인 기능 추가
# 바로 아래 공백은 지우지 마세요 (제목과 본문의 분리를 위함)
################
# 본문(구체적인 내용)을 아랫줄에 작성
# 여러 줄의 메시지를 작성할 땐 "-"로 구분 (한 줄은 72자 이내)
################
# 꼬릿말(footer)을 아랫줄에 작성 (현재 커밋과 관련된 이슈 번호 추가 등)
# 예) Close #7
################
# Feat : 새로운 기능 추가
# Fix : 버그 수정
# Refactor : Production 코드 리팩토링
# Test : 테스트를 추가, 테스트 코드 리팩토링(production code에는 변경이 없음)
# Design : UI 디자인 변경
# Rename : 파일 삭제
# Docs : 문서 변경
# Chore : Build Task를 업데이트, 패키지 매니저 설정(production code에는 변경이 없음)
# Comment : 주석 추가 및 삭제
################
이렇게 2까지의 과정을 거치게 되면 템플릿 파일이 생성되게 된다.
그러나 아직 커밋 템플릿으로 생성한 템플릿 파일을 지정하는 과정을 거치지 않았기 때문에 터미널에 다음 명령어를 입력한다.
3. git commit 템플릿 파일 지정
git config --global commit.template .gitmessage.txt
이 과정까지 완료되었다면 이제 git commit 명령어를 실행하면 지정한 템플릿이 등장하게 된다.
현재 우리는 .gitmessage.txt를 새로 생성했기 때문에 이를 git에 푸시하는 작업으로 예시를 들어보겠다.
4. git status (변경 파일 확인)
% git status
On branch feat/1.0_2
Your branch is up to date with 'origin/feat/1.0_2'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .gitmessage.txt
.gitmessage.txt 변경 확인
5. git add 파일명
git add .gitmessage.txt
6. git commit
git commit
git commit 명령어를 입력하면 우리가 만들어뒀던 템플릿이 등장하게 되는데 사용 양식에 맞춰서 다음과 같이 작성해주면 된다.
그리고 파일을 저장하면(:wq) 커밋이 완료된다
################
# <타입> : <제목> 의 형식으로 제목을 아래 공백줄에 작성
# 제목은 50자 이내 / 변경사항이 "무엇"인지 명확히 작성 / 끝에 마침표 금지
# 예) Feat: [#이슈번호] 로그인 기능 추가
Docs: [#2] commit template 파일 추가
# 바로 아래 공백은 지우지 마세요 (제목과 본문의 분리를 위함)
################
# 본문(구체적인 내용)을 아랫줄에 작성
# 여러 줄의 메시지를 작성할 땐 "-"로 구분 (한 줄은 72자 이내)
- commit template 파일 테스트를 위한 파일 추가
- commit template 테스트용 커밋
################
# 꼬릿말(footer)을 아랫줄에 작성 (현재 커밋과 관련된 이슈 번호 추가 등)
# 예) Close #7
################
# Feat : 새로운 기능 추가
# Fix : 버그 수정
# Refactor : Production 코드 리팩토링
# Test : 테스트를 추가, 테스트 코드 리팩토링(production code에는 변경이 없음)
# Design : UI 디자인 변경
# Rename : 파일 삭제
# Docs : 문서 변경
# Chore : Build Task를 업데이트, 패키지 매니저 설정(production code에는 변경이 없음)
# Comment : 주석 추가 및 삭제
################
7. git push origin 브랜치명
git push 까지 완료하면 다음과 같이 github에 커밋이 잘 올라가져 있는 것을 확인할 수 있다.
사실 기존과 차이점은 템플릿 파일 생성과 git commit -m "커밋메시지" 명령어를 사용해 커밋했던 것을 git commit을 활용해 커밋 메시지를 남긴다는 차이점만 존재하고 나머지는 동일하다,
참고 자료:
'iOS 개발' 카테고리의 다른 글
[iOS 개발] Library not loaded: @rpath/Swinject-Dynamic.framework/Swinject-Dynamic 오류 해결 (0) | 2023.10.25 |
---|---|
[iOS 개발] TDD 정의 및 장단점 (3) | 2023.09.30 |
[iOS개발] Fastlane Match 적용하기 (0) | 2023.09.06 |
[iOS 개발] Fastlane 적용해보기 (0) | 2023.09.05 |
[iOS 개발] NotificationCenter란? (0) | 2023.07.26 |