Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

Git 커밋 히스토리 조회 본문

Git

Git 커밋 히스토리 조회

야식은진리다 2020. 4. 23. 02:03

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