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를 확인하고 아래와 같이 복구한다.