git log 명령어의 경우 깃 프로젝트의 히스토리를 보기 위한 커맨드 입니다.
깃을 작업을 하다보면 push도 하고 clone, merge .. 많은 작업을 하는데
프로젝트에서 어떤 히스토리 그리고 누가 작업을 했고 누가 merge 를 했는지
알고 싶을 때 사용을 한다.
보통 IDE 를 사용하면 git log을 보통 트리형식으로 보여준다.
어떤 프로젝트가 있다 기본 명령어인 log
를 사용을 했다.
옵션이 없다면 레파지토리의 커멋 히스토리가 시간순으로 보여준다.
가장 최근 커밋이 가장 먼저 나온다. 각각의 커밋은 이메일, 이름, sha-1 체크섬, 커밋 날짜, 커밋 메세지 등.. 보여준다.
원하는 히스토리를 보여준다.
git log
다양한 옵션중에 -p
, --patch
는 각각의 커민 diff 결과를 보여준다. 이 옵션은 직접 diff 를 실행한것과 같은 결과를 출력하기 때문에 무엇을 커밋했는지 보여준다.
예시로 하면 -3 이라는 커멘드를 사용하면 최근 3가지 로그를 보여준다.
git log -p -3
--stat
옵션으로 각 커밋의 통계 정보를 조회할 수 있는데 어떤 파일이 수정 되었는지 얼마나 많은 파일이 변경 되었는지 얼마나 라인을 제거 했는지 알 수 있는데 요약 정보를 뒤쪽에 보여준다.
git log --stat
--pretty
옵션인데 이 옵션을 통해서 히스토리 내용을 보여줄 때 기본 형식 이외에 다른 형식으로도 볼 수 있다.
oneline
옵션은 각 커밋은 한 라인 씩 보여준다. 그리고 추가적으로 다른 옵션들도 존재한다. short
, full
, fuller
옵션도 있는데 정보를 축약 해주거나 늘려서 보여준다.
git log --pretty=oneline
여기서 추가적으로 format
옵션이다. 나만의 포맷으로 결과를 출력하고 싶을때 사용하다.
특히 결과를 다른 프로그램으로 파싱하고자 할때 유용하다.
git log --pretty=format:"%h - %an, %ar : %s"
옵션 | 설명 |
---|---|
%H | 커밋 해시 |
%h | 짧은 길이 커밋 해시 |
%T | 트리 해시 |
%t | 짧은 길이 트리 해시 |
%P | 부모 해시 |
%p | 짧은 길이 부모 해시 |
%an | 저자 이름 |
%ae | 저자 메일 |
%ad | 저자 시각 (형식은 –-date=옵션 참고) |
%ar | 저자 상대적 시각 |
%cn | 커미터 이름 |
%ce | 커미터 메일 |
%cd | 커미터 시각 |
%cr | 커미터 상대적 시각 |
%s | 요약 |
--graph
옵션은 그래프 형식으로 보여준다.
사실 위의 옵션들도 중요하다고 생각되지만 가장 중요한 것을 위의 옾션이라고 생각된다. 이 옵션을 사용해서 tree 구조로 로그를 볼 수 있어서 가장 유용하다. 위의 옵션들을 사용해서 아래와 같이 만들 수 도 있다.
git log --pretty=format:"%h %s" --graph --color
git log --oneline --graph --color --all --decorate
그리고 알리야스로 만들어서도 사용이 가능하다.
아래와 같이 알리야스를 만들어서 사용을 한다면 유용하게 사용이 가능하다.
[alias]
tree = log --oneline --graph --all --no-decorate
git tree --decorate
OS가 GUI를 지원할 때 다음을 사용하는 커멘드
gitk --all
추가적으로 다른 옵션을 사용이 가능하다.
gitk master origin/master origin/experiment
gitk --simplify-by-decoration --all