# git log

> 커밋 이력을 시간 역순으로 조회한다.

## 용도

로컬 저장소에 쌓인 커밋을 최신 순으로 보여 준다. 해시, 작성자, 시각, 메시지를 확인해 무엇이 언제 기록됐는지 돌아보고, `--amend`·`revert`·병합 뒤 이력이 의도대로 바뀌었는지 검증한다.

## 자주 쓰는 옵션

| 옵션 | 의미 | 기본 동작 |
| --- | --- | --- |
| `--oneline` | 커밋당 한 줄(짧은 해시 + 메시지) | 생략하면 커밋마다 여러 줄 출력 |
| `--graph --all` | 모든 브랜치를 선으로 이어 표시 | 생략하면 현재 브랜치만 |
| `-p` | 각 커밋의 변경 내용(diff)까지 표시 | `-p -2`처럼 개수를 함께 지정 |
| `-n 3` | 최근 3개만 표시 | 생략하면 전체 |
| `--stat` | 커밋별 변경 파일과 줄 수 통계 | 생략하면 메시지만 |

## 예시

```bash
git log --oneline
git log --oneline --graph --all
git log -p -2
```

첫 줄로 커밋 개수와 메시지를 빠르게 훑고, 두 번째 줄로 브랜치가 갈라지고 합쳐진 모양을 보며, 세 번째 줄로 최근 두 커밋의 실제 변경을 읽는다.

## 주의할 점

- 출력이 길어 화면이 멈춘 것처럼 보이면 `q`를 눌러 빠져나온다. 방향키로 위아래를 넘긴다.
- `--amend`나 `revert` 뒤에는 `git log --oneline`으로 해시와 메시지가 기대대로 바뀌었는지 반드시 확인한다.
- 에이전트의 작업 설명과 `git log` 결과가 다르면 `git log`를 기준으로 삼는다.

- [커밋과 이력 기록](https://echo.qus0in.dev/git/03-commit-history.md)
- [되돌리기와 무시 규칙](https://echo.qus0in.dev/git/04-amend-ignore.md)
- [병합과 충돌 해결](https://echo.qus0in.dev/git/11-merge-conflicts.md)
- [명령과 옵션 일람](https://echo.qus0in.dev/git/appendix/02-git-options.md)
