Git Github

Git - 커밋 컨벤션 및 브랜치 관리

최 수빈 2025. 2. 7. 01:19

 

커밋 메시지 작성 규칙

 

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! → 저장 없이 종료