커밋 메시지 작성 규칙
Git 커밋 메시지는 일관성을 유지하여 코드 변경 사항을 쉽게 이해할 수 있도록 작성해야 함
커밋 메시지 형식
type: subject
body (선택)
footer (선택)
type
: 변경 사항의 유형을 나타냄subject
: 간결한 변경 사항 설명 (50자 이내 권장)body
(선택): 변경 사항에 대한 추가 설명 (줄바꿈 포함 가능)footer
(선택): 관련된 이슈 번호, 참고 사항 등 추가 정보
type
종류 및 의미
Type | 설명 |
---|---|
feat 또는 feature |
새로운 기능 추가 |
fix 또는 bugfix |
버그 수정 |
docs |
문서 수정 |
style |
코드 포맷팅, 스타일 변경 (기능 변경 없음) |
refactor 또는 refac |
코드 리팩토링 (로직 변경 없음) |
test |
테스트 코드 추가/수정 |
comment |
주석 추가/수정 |
remove |
파일 또는 디렉토리 삭제 |
rename |
파일 또는 디렉토리 이름 변경 |
커밋 메시지 예시
feat: 사용자 로그인 기능 추가
사용자가 이메일과 비밀번호를 입력하여 로그인할 수 있도록 기능 추가
JWT 토큰을 이용한 인증 방식 적용
Resolves: #12
브랜치 개념 및 활용
브랜치
브랜치는 특정 커밋을 가리키는 포인터
독립적인 개발 흐름을 유지할 수 있도록 함
c1 - c2 - c3 - c4 (분기) c5(a) c6(a)
\-> b1(b) b2(b)
c4
까지의 변경 사항이 a
브랜치와 b
브랜치로 나뉘어 관리됨
브랜치 전략
- 기능 단위로 브랜치를 생성하여 관리하는 것이 좋음
- 작은 단위의 브랜치를 자주 만들고, 필요하면 병합하는 방식 추천
main
(또는master
) 브랜치는 안정적인 코드만 유지
브랜치 생성 및 이동
git branch 브랜치이름 # 브랜치 생성
git switch 브랜치이름 # 브랜치 이동 (기존 브랜치)
git switch -c 브랜치이름 # 브랜치 생성 후 이동 (checkout -b와 동일)
git branch -d 브랜치이름 # 브랜치 삭제
git branch # 현재 존재하는 브랜치 목록 확인
머지(Merge) 전략
Fast-forward 머지
브랜치가 동일한 선상에서 변경된 경우, 단순히 브랜치 포인터를 이동하여 머지할 수 있음
git switch main
git merge 브랜치이름
이 경우, 별도의 머지 커밋이 생성되지 않음
3-way 머지
서로 다른 경로에서 변경된 브랜치를 병합하는 경우, 별도의 머지 커밋이 필요함
git switch main
git merge feature-B
- 충돌 발생 시, 충돌을 해결하고 커밋 메시지를 작성해야 함
- Vim 편집기에서 메시지 입력 후
:wq
입력하여 저장 후 종료
* Merge Commit (ORT, Optimize Recursive Three-way merge)
Git의 기본 병합 전략
- ORT를 사용하여 최적화된 방식으로 머지 수행
- 기본적으로 3-way 머지를 수행하지만, 더 빠르게 병합하고 충돌을 보다 효율적으로 처리할 수 있도록 개선된 병합 전략
- 분기된 브랜치를 하나로 합칠 때 사용
3-way merge | 세 개의 버전을 비교하여 머지하는 방식 |
Merge Commit(ORT) | 3-way merge를 최적화한 방식 |
→ 3-way merge는 일반적인 병합 방식이고, Merge Commit(ORT)는 그 병합을 수행할 때 사용되는 Git의 내부 알고리즘
ORT는 3-way머지를 개선한 방식이므로, git merge 실행 시 기본적으로 ORT를 사용하지만 여전히 3-way merge의 개념이 유지됨
Git 명령어
커밋하기
git add . # 변경된 모든 파일 스테이징
git commit -m "커밋 메시지"
커밋 메시지 입력 없이 git commit
실행 시, 기본 편집기(Vim)가 열림
로그 확인
git log # 커밋 내역 확인
git log --oneline # 한 줄 요약
Vim(vi) 편집기 사용법
i
→ 입력 모드로 변경ESC
→ 명령 모드로 이동:wq
→ 저장 후 종료:q!
→ 저장 없이 종료
'Git Github' 카테고리의 다른 글
Git/GitHub - Shared Repository Model & Pull Request(PR) Workflow (1) | 2025.02.10 |
---|---|
GitHub 프로필/ GitHub Pages 레포지토리 생성 및 커스텀 (1) | 2025.01.23 |
Remote Repository 연결 및 관리 (3) | 2025.01.17 |
Git - Working Directory, Staging Area, Repository (3) | 2025.01.02 |
Git (4) | 2024.12.19 |