나의 지식 보관소
Git 커밋 히스토리 조회 본문
Git을 사용하다가 저장소의 히스토리를 보고 싶다면 $ git log 명령을 실행하면 된다.
또한 $ git log 는 원하는 히스토리를 검색할 수 있도록 다양한 옵션을 지원한다.
옵션 | 설명 |
-p | 각 커밋에 적용된 패치를 보여준다. |
--stat | 각 커밋에서 수정된 파일의 통계정보를 보여준다. |
--shortstat | --state 명령의 결과 중에서 수정한 파일, 추가된 라인, 삭제된 라인만 보여준다. |
--name-only | 커밋 정보중에서 수정된 파일의 목록만 보여준다. |
--name-status | 수정된 파일의 목록을 보여줄 뿐만 아니라 파일을 추가한 것인지, 수정한 것인지, 삭제한 것인지도 보여준다. |
--abbrev-commit | 40자 짜리 SHA-1 체크섬을 전부 보여주는 것이 아니라 처음 몇 자만 보여준다. |
--relative-date | 정확한 시간을 보여주는 것이 아니라 "2 weeks ago"처럼 상대적인 형식으로 보여준다. |
--graph | 브랜치와 머지 히스토리 정보까지 아스키 그래프로 보여준다. |
--pretty | 지정한 형식으로 보여준다. 이 옵션에는 oneline, short, fulll, fuller, format이 있다 format은 원하는 형식으로 출력하고자 할 때 사용한다. |
--online | --pretty=oneline --abbrev-commit 두 옵션을 함께 사용한 것과 같다. |
-p, --patch
-p 는 각 커밋의 diff 결과를 보여준다. 이 옵션은 직접 diff를 실행한 것과 같은 결과를 출력하기 때문에 동료가 무엇을 커밋했는지 리뷰하고 빨리 조회하는데 유용하다.
--stat
--stat 는어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지, 또 얼마나 많은 라인이 추가되거나 삭제되었는지 같은 각 커밋의 통계 정보를 조회하는 명령이다.
--pretty
--pretty 옵션은 히스토리 내용을 보여줄 때 어떤 형식으로 보여줄지 선택할 수 있다. 선택할 수 있는 옵션 값이 몇 가지가 있는데 oneline는 각 커밋을 한 줄로 보여주고, short, full, fuller옵션들은 정보를 조금씩 가감해서 보여준다.
ex) $ git log --pretty=oneline
또 format이라는 옵션이 있는데, 여러 옵션을 조합해서 원하는 포맷으로 결과를 출력할 수 있다.
옵션 | 설명 |
%H | 커밋 해시 |
%h | 짧은 길이 커밋 해시 |
%T | 트리 해시 |
%t | 짧은 길이 트리 해시 |
%P | 부모 해시 |
%p | 짧은 길이 부모 해시 |
%an | 저자 이름 |
%ae | 저자 메일 |
%ad | 저자 시각 (형식은 --date=옵션 참고) |
%ar | 저자 상대적 시각 |
%cn | 커미터 이름 |
%ce | 커미터 메일 |
%cd | 커미터 시각 |
%cr | 커미터 상대적 시각 |
%s | 요약 |
ex) $ git log --pretty=format:"%h - %an, %ar : %s"
참고로 저자(Author)는 원래 작업을 수행한 원작자이고, 커미터(committer)는 마지막으로 이 작업을 적용한 사람이다.
만약 당신이 어떤 프로젝트에 패치를 보냈고 그 프로젝트의 담당자가 패치를 적용했다면, 당신이 저자고 그 담당자가 커미터가 된다.
조회 제한 조건
$ git log 명령은 조회 범위를 제한하는 옵션도 걸 수 있다.
옵션 | 설명 |
-n | 최근 n개의 커밋만 조회한다. |
--since, --after | 명시한 날짜 이후의 커밋만 검색한다. |
--until, --before | 명시한 날짜 이전의 커밋만 조회한다. |
--author | 입력한 저자의 커밋만 보여준다. |
--committer | 입력한 커미터의 커밋만 보여준다. |
--grep | 커밋 메세지 안의 텍스트를 검색한다 |
-S | 커밋 변경(추가/삭제) 내용 안의 텍스트를 검색한다. |
--no-merges | 머지 커밋을 표시하지 않는다. |
-- | -- 뒤에 오는 파일이나 디렉토리이름이 변경된 log의 결과를 검색한다. 명령어 끝부분에 사용한다. |
예를 들어 지난 2주 동안 만들어진 커밋들만 조회하는 명령은 아래와 같다.
$ git log --since=2.weeks
이 옵션은 다양한 형식을 지원해서 "2008-01-15" 같이 정확한 날짜를 사용할 수도 있고 "2 years 1 day 3 minutes ago" 같이 상대적인 기간을 사용할 수도 있다.
-S 옵션은 코드에서 추가되거나 제거된 내용 중에 특정 텍스트가 포함되어 있는지를 검색한다. 예를 들어 어떤 함수가 추가되거나 제거된 커밋만을 찾아보려면 아래와 같은 명령을 사용한다.
$ gity log -S function_name
-- 옵션은 $ git log -- path1 path2 처럼 사용할수있다.
'Git' 카테고리의 다른 글
Git 리모트 저장소 (0) | 2020.04.23 |
---|---|
Git 되돌리기 (0) | 2020.04.23 |
Git 버전 만들기 (0) | 2020.04.20 |
Git 파일의 상태 (파일의 생명주기) (0) | 2020.04.20 |
Git 저장소 만들기 (0) | 2020.04.20 |