Skip to content

Git:Log

git-log: Show commit logs.

자주 사용하는 Git Log 명령어 옵션

git log -- path1 path2
디렉토리나 파일 이름을 사용하여 그 파일이 변경된 log의 결과를 검색할 수 있다. 이 옵션은 --와 함께 경로 이름을 사용하는데 명령어 끝 부분에 쓴다.
git log --stat
기본 LOG결과 + 수정파일 리스트를 출력한다. 각 커밋에서 수정된 파일의 통계정보(수정라인 수)를 보여준다.
git log --name-only
커밋 정보중에서 수정된 파일의 목록만 보여준다. 기본 LOG결과 + git log --stat의 중간 느낌.
git log --name-status
수정된 파일의 목록을 보여줄 뿐만 아니라 파일을 추가한 것인지, 수정한 것인지, 삭제한 것인지도 보여준다.
git log --shortstat
git log --stat 명령의 결과 중에서 수정한 파일, 추가된 줄, 삭제된 줄만 보여준다.
git log --pretty=oneline
Commit 내용을 한줄로 표시. Commit 번호와 Commit 로그만 출력.
git log --author-date-order
커밋 타임 스탬프 대신 작성자의 타임 스탬프별로 정렬합니다.
Show no parents before all of its children are shown, but otherwise show commits in the author timestamp order.
git log --oneline
Commit 내용을 한줄로 표시. git log --pretty=oneline와 차이점은, Commit SHA1 번호를 축약형(7자리)으로 출력한다.
git log --pretty=oneline --abbrev-commit옵션을 함께 사용한 것과 동일하다.
git log -p
각 커밋에 적용된 패치를 보여준다. 어느 파일을 어떻게 수정했는지 diff 된 결과를 출력.
git log --pretty=?
지정한 형식으로 보여준다. 이 옵션에는 oneline, short, full, fuller, format이 있다.
참고로 format은 원하는 형식으로 출력하고자 할 때 사용한다.
git log --graph
명령은 Branch와 Merge 히스토리를 보여주는 아스키 그래프를 출력한다.
onelineformat옵션을 함께 사용할 때 더욱 좋다.
git log --word-diff
diff 결과를 단어 단위로 보여준다.
git log --abbrev-commit
40자 짜리 SHA-1 체크섬을 전부 보여주는 것이 아니라 처음 몇 자만 보여준다.
git log --relative-date
정확한 시간을 보여주는 것이 아니라 2 주전처럼 상대적인 형식으로 보여준다.
git log --decorate
HEAD, Origin, Branch 정보 등의 아스키 장식을 추가한다.
git log --all
모든(Branch를 포함)로그를 출력한다.
git log [REMOTE]/[BRANCH]
원격 저장소의 로그를 열람할 수 있다. 기본 원격 저장소(Origin)의 Master Branch를 열람하고 싶을 경우 git log origin/master를 입력하면 된다.

List of Pretty Format Option

--pretty=format에서 사용하는 유용한 옵션목록은 아래와 같다.

Option

Description of Output

%H

Commit hash

%h

Abbreviated commit hash

%T

Tree hash

%t

Abbreviated tree hash

%P

Parent hashes

%p

Abbreviated parent hashes

%an

Author name

%ae

Author e-mail

%ad

Author date (format respects the --date= option)

%ar

Author date, relative

%cn

Committer name

%ce

Committer email

%cd

Committer date

%cr

Committer date, relative

%s

Subject

조회 제한조건

출력 형식과 관련된 옵션을 살펴봤지만 git log 명령은 조회 범위를 제한하는 옵션들도 있다. 히스토리 전부가 아니라 부분만 조회한다.

Option

Description of Output

-n

최근 n 개의 커밋만 조회한다.

--since, --after

명시한 날짜 이후의 커밋만 검색한다.

--until, --before

명시한 날짜 이전의 커밋만 조회한다.

--author

입력한 저자의 커밋만 보여준다.

--committer

입력한 커미터의 커밋만 보여준다.

Example

간략한 출력

최근 4개(Branch포함)에 한하여 간략히 출력하는 방법은 아래와 같다.

$ git log --decorate --oneline --graph --all -4

위와 같이 입력할 경우 아래와 같이 출력된다.

* 177a8fc (HEAD) Addin RenderScript v8 JAR.
| * f3eae1b (origin/master, origin/HEAD, master) Remove RenderScript.
|/
* 0dd2f1e Update Balrocon2 logo icon.
* 55c63c5 Logging class refactoring.

제거된 파일 검색

전체 히스토리를 대상으로 제거된 파일을 검색하고 복구한다.

$ git log --all --summary --diff-filter=D

grep과 같은 툴로 검색한 후 SHA를 확인하고 아래와 같이 복구한다.

$ git checkout ${sha}^ ${file}

Favorite site