Git

[Git] 커밋(commit)

염두리안 2025. 1. 9. 13:14
728x90
반응형

커밋 히스토리: 최신 커밋일수록 위쪽에 뜸

 

git log
// 로그를 나갈 땐 Q

// 예쁘게 출력을 원하면
git log --pretty=oneline

// 이전 커밋과 비교하기
git show [커밋ID(4자리 정도만 입력해도 됨)]

 

m 옵션 없이 커밋 메시지 남기기) 긴 커밋 메시지를 남길 때 사용

git commit
// 을 입력하면 텍스트에디터 창으로 넘어가서 입력 가능

 

최신 커밋 수정하기

git commit --amend

 

커밋 메시지 작성 가이드라인

  • 커밋 메시지의 제목과 상세 설명 사이엔 한 줄 비우기
  • 커밋 메시지의 제목 뒤엔 온점(.) 붙이지 않기
  • 커밋 메시지의 제목의 첫번째 알파벳은 대문자로 작성하기
  • 커밋 메시지의 제목은 명령조로 작성하기
  • 커밋 상세 내용엔 왜 했는지, 어떤 문제가 있었는지, 적용한 해결책이 무엇인지를 적으면 좋음
  • 최대한 친절하게 작성하기

커밋할 때 알아야할 가이드라인

  • 1 커밋 1 수정사항(이슈)만 되도록 함 ~> 그래야지 이해하기 쉬움
  • 현재 프로젝트 디렉토리 상태가 그 내부의 전체 코드를 실행했을 때 에러가 발생하지 않은 상태인 경우에만 커밋하기

긴 커맨드에 alias 설정하기

  • alias) 커맨드 전체에 별명을 붙여서 사용하는 것
git config alias.[별명] '옵션'

// 예시
// --pretty=oneline를 alias 지정
git config alias.history 'log --pretty=oneline'
// 후에 git history를 입력하면 같은 커맨드 실행

 

두 커밋 간 차이 보기

git diff [이전커밋ID] [이후커밋ID]

 

HEAD의 의미) 보통 최신 커밋을 가리킴 | 만약 HEAD가 최신 커밋이 아닌 과거 커밋을 가리키면 워킹 디렉토리 내부도 과거 커밋의 모습대로 바뀜

 

이전 커밋으로 git reset하기

  • --soft, --mixed, --hard 3가지 옵션이 있음
    • --hard: working directory, staging area, repository 3개 다 이동한 그 커밋으로 변경됨 | 복구할 수 없기 때문에 그렇게 권장되는 옵션은 아님
    • --mixed: staging area, repository는 이동한 그 커밋으로 변경, working directory는 변경 X
    • --soft: repository만 이동한 커밋으로 변경, working directory, staging area는 변경 X
// git reset [옵션] [이동할ID]
git reset --hard [이동할ID]
git reset --soft [이동할ID]
git reset --mixed [이동할ID]

// ID를 쓰지 않고 이동하기
git reset [옵션] HEAD^ // 바로 이전 커밋으로 이동
git reset [옵션] HEAD~2 // 현재 HEAD보다 2단계 전 커밋으로 이동

 

커밋에 tag 달기) 프로젝트에서 주요 버전의 시작점이 되는 커밋에 태그를 달음

// 태그 달기
git tag [태그이름] [커밋아이디]

// 태그 조회
git tag

// 각 태그와 연결된 커밋 보기
git show [태그이름]

 

728x90
반응형