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 히스토리를 보여주는 아스키 그래프를 출력한다.
-
oneline
과format
옵션을 함께 사용할 때 더욱 좋다.
-
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 개의 커밋만 조회한다. |
| 명시한 날짜 이후의 커밋만 검색한다. |
| 명시한 날짜 이전의 커밋만 조회한다. |
| 입력한 저자의 커밋만 보여준다. |
| 입력한 커미터의 커밋만 보여준다. |
Example
간략한 출력
최근 4개(Branch포함)에 한하여 간략히 출력하는 방법은 아래와 같다.
위와 같이 입력할 경우 아래와 같이 출력된다.
* 177a8fc (HEAD) Addin RenderScript v8 JAR.
| * f3eae1b (origin/master, origin/HEAD, master) Remove RenderScript.
|/
* 0dd2f1e Update Balrocon2 logo icon.
* 55c63c5 Logging class refactoring.
제거된 파일 검색
전체 히스토리를 대상으로 제거된 파일을 검색하고 복구한다.
grep과 같은 툴로 검색한 후 SHA를 확인하고 아래와 같이 복구한다.