Git 정리 - 버전 관리 - log

'Git' 시리즈Git 정리 - 버전 관리 - log

mildsalmon

흔치않고, 진귀하다.

Sign in to view email

저장소에 저장된 버전 확인 (git log)

방금 커밋한 버전에 대한 설명이 나온다.

git log

커밋 히스토리(log) 설명

지금까지 커밋했던 기록을 살펴보기 위한 명령.
git log를 입력하면,
지금까지 만든 버전이 화면에 나타나고, 각 버전마다 설명이 나온다.

commit이라는 노란색 항목 옆에 숫자와 영문이 섞인 문자열은 커밋 해시(commit hash), 깃 해시(git hash)라고 부른다.
커밋을 구별하는 ID라고 생각하면 된다.

commit 옆에 (HEAD -> master)는 이 버전이 가장 최신이라는 표시이다.
HEAD는 현재 작업 트리가 어떤 버전을 기반으로 작업 중인지를 가리키는 포인터이다.
HEAD는 기본적으로 master 브랜치를 가리킨다.
브랜치는 기본적으로 브랜치에 담긴 커밋 중에서 가장 최근의 커밋을 가리킨다.

Author은 버전을 누가 만들었는지.

Date는 버전이 언제 만들어 졌는지.

그 아래에는 작성자가 기록한 커밋 메시지가 나온다.

옵션

옵션 설명
-p 각 커밋에 적용된 패치를 보여준다.
--stat 각 커밋에서 수정된 파일의 통계정보를 보여준다.
--shortstat --stat 명령의 결과 중에서 수정한 파일, 추가된 라인, 삭제된 라인만 보여준다.
--name-only 커밋 정보중에서 수정된 파일의 목록만 보여준다.
--name-status 수정된 파일의 목록을 보여줄 뿐만 아니라 파일을 추가한 것인지, 수정한 것인지, 삭제한 것인지도 보여준다.
--abbrev-commit 40자 짜리 SHA-1 체크섬을 전부 보여주는 것이 아니라 처음 몇 자만 보여준다.
--relative-date 정확한 시간을 보여주는 것이 아니라 “2 weeks ago” 처럼 상대적인 형식으로 보여준다.
--graph 브랜치와 머지 히스토리 정보까지 아스키 그래프로 보여준다.
--pretty 지정한 형식으로 보여준다. 이 옵션에는 oneline, short, full, fuller, format이 있다. format은 원하는 형식으로 출력하고자 할 때 사용한다.
--oneline --pretty=oneline --abbrev-commit 두 옵션을 함께 사용한 것과 같다.

각 커밋의 diff 결과 보기 (--patch)

-p, --patch는 각 커밋의 diff 결과를 보여준다.
직접 diff를 실행한 것과 같은 결과를 출력한다.
동료의 커밋을 리뷰하고 빨리 조회하는데 유용하다

git log -p -(커밋 갯수)
git log --patch -(커밋 갯수)

각 커밋의 통계 정보 조회 (--stat)

각 커밋의 통계 정보를 조회할 수 있다.
어떤 파일이 수정되었는지, 얼마나 많은 파일이 변경되었는지, 얼마나 많은 라인을 추가하거나 삭제했는지 보여준다.
요약정보는 가장 뒤쪽에 보여준다.

git log --stat -(커밋 갯수)

커밋 히스토리 형식 변경 (--pretty)

히스토리 내용을 보여줄 때 기본 형식 외에 여러 가지 중에 하나를 선택할 수 있다.
옵션은 아래에 작성했다.

oneline

각 커밋을 한 줄로 보여준다.

git log --pretty=oneline

short

커밋의 최소 정보만 보여준다.
커밋 해시, 작성자, 커밋 내용

git log --pretty=short

full

short보다 많은 정보를 보여준다.
short + 커밋 작성자

git log --pretty=full

fuller

가장 많은 정보를 보여준자.
full + 커밋 날짜, 작성 날짜

git log --pretty=fuller

format

내가 원하는 포맷으로 커밋 히스토리 결과를 출력할 수 있다.

git log --pretty="%T - % an, %ad, '%cn' [%s]" -(커밋 갯수)

포멧 옵션

옵션 설명
%H 커밋 해시
%h 잛은 길이 커밋 해시
%T 트리 해시
%t 잛은 길이 트리 해시
%P 부모 해시
%p 짧은 길이 부모 해시
%an 저자 이름
%ae 저자 메일
%ad 저자 시각
%ar 저자 상대적 시각
%cn 커미터 이름
%ce 커미터 메일
%cd 커미터 시각
%cr 커미터 상대적 시각
%s 요약

--oneline

--pretty = oneline --abbrev-commit 두 옵션을 같이 사용한 것과 같다.

git log --oneline

각 브랜치의 커밋 함께 보기

각 브랜치의 커밋을 같이 볼 수 있다.

git log --oneline --branches

그래프로 보기

각 브랜치와 커밋의 관계를 그래프 형태로 볼 수 있다.

git log --oneline --branches --graph

브랜치 사이의 차이점 알아보기

브랜치 이름 사이에 마침표 두개(..)를 넣으면 브랜치 간의 차이점을 쉽게 확인할 수 있다.
마침표 왼쪽에 있는 브랜치를 기준으로 오른쪽 브랜치와 비교한다.

git log master..show

이러면 master 브랜치에는 없고 show 브랜치에만 있는 커밋을 보여준다.

마치며

다음에는 diff에 대해 포스팅하겠습니다.

참고문헌

이고잉, 고경희, 『Do it! 깃&깃허브 입문』 이지스퍼블리싱(2019)

Git의 기초 - 커밋 히스토리 조회하기, "https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%BB%A4%EB%B0%8B-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0"

작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.