본문 바로가기

Git

Commit

Commit

staging area의 현 상태를 그대로 하나의 버전으로 남기는 작업, 또는 그 결과물

 

커밋이 담고 있는 정보

  1. 커밋을 한 사용자 아이디
  2. 커밋한 날짜, 시간
  3. 커밋 메시지

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

(1) 커밋 메시지의 제목과 상세 설명 사이에는 한 줄 비우기.

1번이 커밋 메시지의 제목(title), 2번이 커밋 메시지의 상세 내용(body)

 

(2) 커밋 메시지의 제목 뒤에 온점(.) 붙이지 말것

(3) 커밋 메시지의 제목의 첫 번째 알파벳은 대문자로 시작

(4) 커밋 메시지의 제목은 명령어로 작성 (Fix it / Fixed it / Fixes it)

(5) 커밋의 상세 내용에 아래와 같이 작성하면 좋음

  • 왜 커밋을 했는지
  • 어떤 문제가 있었고
  • 적용한 해결책이 어떤 효과를 가지는지

(6) 다른 사람들이 이해하기 쉽게 최대한 친절하게 작성


커밋할 때 주의사항

(1) 하나의 커밋에는 하나의 수정사항, 하나의 이슈(issue)를 해결한 내용만 남기기

-> 최대한 작은 단위의 변화를 기준으로 커밋

 

(2) 현재 프로젝트 디렉토리의 상태가 그 내부의 전체 코드를 실행했을 때 에러가 발생하지 않는 상태인 경우에만 커밋


커밋 히스토리

이때까지 한 커밋들

  • git log : 커밋 히스토리들을 보여줌
    • git log --pretty=oneline : 커밋 히스토리들을 간소화해서 보여줌 (한줄로 출력)
  • git show : 커밋 히스토리 중 특정 커밋에 대한 정보 보여줌

 

 

-m 옵션 없이 커밋 메시지 남기기

  • git commit
Add one function

calculator.py supports 3 functions now

git commit 만으로 커밋 메시지 생성

복잡하고 긴 커밋 메시지를 남기기에 쉽다.


최근 커밋 수정

  • git commit --amend

 

최신 커밋의 내용을 수정해서 다시 새로운 커밋으로 만든다. (i 입력 후 내용 수정 -> ESC -> :wq)


Aliasing

 : 별명 붙이기

git config
git config alias.history 'log --pretty=oneline'

 

이렇게 쓰고 실행하면 앞으로 git history 라고만 써도 자동으로 git log --pretty=oneline 을 실행함.


git reset

HEAD : 커밋 히스토리에서, 보통 가장 최근에 한 커밋을 가리킴 -> 매번 더 새로운 커밋을 가리킴

 

  • git reset [커밋 아이디] : HEAD가 과거의 커밋[커밋 아이디]을 가리키게 할 수 있음.

* git reset 3가지 옵션

  • git reset --soft [커밋 아이디]
  • git reset --mixed [커밋 아이디]
  • git reset --hard [커밋 아이디]
git reset [옵션] eea5 working
directory
staging
area
repository
--soft 안 바뀜 안 바뀜 HEADeea5 커밋
가리킴
--mixed 안 바뀜 eea5 커밋처럼 바뀜 HEAD eea5 커밋
가리킴
--hard eea5 커밋처럼 바뀜 eea5 커밋처럼 바뀜 HEAD eea5 커밋
가리킴

Commit 정리

  • git log : 커밋 히스토리 출력
  • git log --pretty=oneline : --pretty 옵션을 사용하여 커밋 하나 당 한 줄씩 출력
  • git show [커밋 아이디] : 특정 커밋에서 어떤 변경사항 있었는지 확인
  • git commit --amend : 최신 커밋을 수정해서 새로운 커밋으로 만듦
  • git config alias.[별명][커맨드] : 길이가 긴 커맨드에 별명을 붙여 이후 별명으로 해당 커맨드 실행할 수 있도록 설정
  • git diff [커밋 A 아이디][커밋 B 아이디] : 두 커밋 간 차이 비교
  • git reset [옵션][커밋 아이디] : 옵션 생략 시 --mixed 옵션 적용
    1. HEAD가 특정 커밋을 가리키도록 이동시킴(--soft, --mixed, --hard)
    2. staging area도 특정 커밋처럼 리셋(--mixed, --hard)
    3. working directory도 특정 커밋처럼 리셋(--hard)
  • git tag [태그이름][커밋 아이디] : 특정 커밋에 태그를 붙임

'Git' 카테고리의 다른 글

Git 협업 관련 지식  (2) 2024.12.31
branch  (1) 2024.12.31
Github 사용법  (0) 2024.12.31
Git 사용법  (0) 2024.12.30