[Git] Git 로그 관리
로그 확인하기
기능 | 명령어 | 결과 | |
---|---|---|---|
기본 | git log |
commit a11bef06a3f659402fe7563abf99ad00de2209e6 Author: Scott Chacon schacon@gee-mail.com Date: Sat Mar 15 10:31:28 2008 -0700 first commit |
|
확인할 로그의 개수 설정 | git log -2 |
git log와 같이 로그의 commit message만 확인 가능 | |
확인할 로그의 수정된 내용까지 확인 | git log -p -2 |
p는 patch라는 뜻으로 수정된 파일의 diff까지 확인 가능 — a/lib/simplegit.rb +++ b/lib/simplegit.rb |
|
로그의 커밋 통계 정보 확인 | git log --stat |
README |6 ++++++ Rakefile |23 +++++++++++++++++++++++ lib/simplegit.rb |25 +++++++++++++++++++++++++ 3 files changed, 54 insertions(+) |
z |
기본 형식 외에 추가 형식 지정 한줄로 출력 |
git log --pretty=oneline |
- | |
기본 형식 외에 추가 형식 지정 형식 지정 |
git log --pretty=format:"%h - %ah, %ar : %s" |
- |
–pretty 형식 지정자 | 설명 |
---|---|
%H | 커밋 해시 |
%h | 짧은 길이 커밋 해시 |
%T | 트리 해시 |
%t | 짧은 길이 트리 해시 |
%P | 부모 해시 |
%p | 짧은 길이 부모 해시 |
%an | 저자 이름 |
%ae | 저자 메일 |
%ad | 저자 시각 (형식은 –-date=옵션 참고) |
%ar | 저자 상대적 시각 |
%cn | 커미터 이름 |
%ce | 커미터 메일 |
%cd | 커미터 시각 |
%cr | 커미터 상대적 시각 |
%s | 요약 메시지 |
git log 옵션 | 설명 |
---|---|
-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 두 옵션을 함께 사용한 것과 같다. |
–since=2weeks –after –until –before |
시간 지정 |
–since=”2020-07-24” | 시간 지정(2020-07-25부터 작성된 log를 보여줌) |
–since=”2 year 1 day 3 minute age” git log –since=”2 years 1 days 3 minutes age” |
시간 지정(복수형 단수형 모두 가능) |
–author=”niklasjang” | 작성자 제한 |
-S {string} | 파일 변경 내용 중 {string}이 포함된 로그만 보여준다. 즉, 함수 이름을 전달하면 해당 함수가 변경된 커밋만 보아서 볼 수 있다. |
–grep {string} | 커밋 메시지 안의 텍스트를 검색한다. |
–no-merges | 머지 커밋은 보여주지 않는다. 커밋 메시지의 merge 단어를 검색하는 것이 아니라 git merge 명령어를 통해서 merge된 경우의 커밋을 log에서 제외한다. |