Updated:

Git 기본 명령어를 정리한 세번째 글입니다.

1. 커밋 히스토리

git을 활용하다 보면, 이전의 버전으로 돌아가서 수정을 해야할 일이 있습니다. 혹은 다른 이유로 커밋 기록을 확인할 일이 생깁니다.


2. git log

git log는 저장소의 commit history를 출력하는 명령어입니다.

  • git log : 저장소의 commit이력을 시간순으로 출력.
    각 커밋의 SHA-1 체크섬, 커밋한 사람 이름, 이메일, 커밋 날짜, 커밋 메시지를 보여줍니다.
  • git log --oneline : 각 commit을 한줄로 출력. --pretty=oneline --abbrev-commit 두 옵션을 함께 사용한 것과 같습니다.
  • git log --decorate=full : 브랜치나 태그정보를 상세히 출력
  • git log -p: 각 커밋의 diff 결과를 보여줌(뒤에 -2를 이어붙이면 최근 두 개의 결과만 보여줌
  • git log --stat: 각 커밋에서 수정된 파일의 통계 정보를 조회. 어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지, 얼마나 많은 라인이 추가 또는 삭제 되었는지 보여줍니다.
  • git log --shortstat: git log–stat 명령의 결과 중에서 수정한 파일, 추가된 라인, 삭제된 라인만 보여줍니다.
  • git log format: 결과를 커스텀하게 출력하고 싶을 때 사용
  • git log --name-only: 커밋 정보중에서 수정된 파일의 목록만 출력
  • git log --name-status: 수정된 파일의 목록을 보여줄 뿐만 아니라 파일을 추가한 것인지, 수정한 것인지, 삭제한 것인지도 출력
  • git log --abbrev-commit: 40자 짜리 SHA-1 체크섬을 전부 보여주는 것이 아니라 처음 몇 자만 출력
  • git log --relative-date: 정확한 시간을 보여주는 것이 아니라 ‘2 weeks ago’ 처럼 상대적인 형식으로 출력
  • git log --graph: 브랜치와 머지 히스토리 정보까지 아스키 그래프로 출력
  • git log --pretty: 히스토리 내용을 보여줄 때 기본 형식 이외에 여러가지 중 하나를 선택할 수 있음(online- 각 커밋을 한 라인으로)

git log –pretty=format:뒤에 쓸 유용한 옵션

  • %H : 커밋 해시
  • %h : 짧은 길이 커밋 해시
  • %T : 트리 해시
  • %t : 짧은 길이 트리 해시
  • %P : 부모 해시
  • %p : 짧은 길이 부모 해시
  • %an : 저자 이름
  • %ae : 저자 메일
  • %ad : 저자 시각 (형식은 –-date=옵션 참고)
  • %ar : 저자 상대적 시각
  • %cn : 커미터 이름
  • %ce : 커미터 메일
  • %cd : 커미터 시각
  • %cr : 커미터 상대적 시각
  • %s : 요약

git log 조회 범위를 제한하는 옵션

  • -(n): 최근 n 개의 커밋만 조회한
  • --since, --after : 명시한 날짜 이후의 커밋만 검색한
  • --until, --before : 명시한 날짜 이전의 커밋만 조회
  • --author : 입력한 저자의 커밋만 출력
  • --committer : 입력한 커미터의 커밋만 출력
  • --grep : 커밋 메시지 안의 텍스트를 검색
  • -S : 커밋 변경(추가/삭제) 내용 안의 텍스트를 검색


3. git show

git show는 특정 commit의 상세정보를 확인할 때 사용합니다.

  • git show : 가장 최근의 commit 정보 출력
  • git show [commit hash] : 해당 commit의 정보 출력
  • git show HEAD : HEAD가 참조하는 commit의 정보 출력
  • git show HEAD^^^ : HEAD를 기준으로 3단계 이전의 commit 정보 출력
  • git show HEAD~[n] : HEAD를 기준으로 n단계 이전의 commit 정보 출력


Reference


https://wikidocs.net/150543
https://git-scm.com/book/ko/v2/Git의-기초-커밋-히스토리-조회하기

Tags:

Categories:

Updated:

Leave a comment