git log
Show commit logs
— Git 공식 매뉴얼(man git-log)
특정 버그를 발생시킨 용의자의 명단과 알리바이가 영구 박제된 무시무시한 수사 기록 일지. 새벽 4시 20분에 올라온 내 커밋을 보며 인생의 덧없음을 곱씹는다(...)
1. 개요
저장소에 축적된 커밋의 기나긴 역사를 연대기순으로 화면에 가득 출력해 주는 열람용 명령어다. 각 커밋의 고유 해시 ID, 저자 이름과 이메일, 작성 일자, 그리고 야성미 넘치는 커밋 메시지를 타임라인 형태로 조명해 준다.
2. 터미널을 가득 메우는 끔찍한 스크롤
옵션 없이 단순무식하게 git log를 입력하는 행위는 화면을 40자리짜리 무미건조한 텍스트 폭포수로 도배하여 눈 피로도를 수직 상승시키는 주범이다. 결국 이 스크롤의 늪에 빠져 헤매다가 키보드의 q를 눌러 탈출하는 일상의 무한루프가 펼쳐진다. 이를 극복하고자 수많은 똑똑이 개발자들은 한 줄 요약형 레이아웃을 간절히 원하게 되었다.1
3. 화려한 비주얼 연금술: --graph와 --oneline
로그의 궁극적인 아름다움은 아스키코드로 그려지는 화려한 지하철 노선도 그래프에서 드러난다. git log --oneline --graph --decorate --all이라는 무시무시한 초필살 에일리언 명령어를 날리는 순간, 평화롭던 터미널 창에는 형형색색의 별빛 마커와 함께 브랜치들의 우아한 분기와 합류를 보여주는 아름다운 시각적 우주망이 탄생한다. 이것이 비로소 전문 해커처럼 보일 수 있게 해주는 마법의 비기다.
4. 실제 사용 예시
커밋 기록을 빠르게 훑어볼 때는 한 줄 로그와 그래프 옵션을 함께 쓰는 경우가 많다.
git log
git log --oneline
git log --oneline --graph --decorate --all
특정 파일이 언제 바뀌었는지 추적하거나, 커밋별 실제 변경 내용을 보고 싶을 때는 범위를 좁혀서 본다.
git log -- src/app.ts
git log -p -- src/app.ts
git log --stat --since="2 weeks ago"
5. 관련 밈 및 드립
5.1. 야근의 과학적 증명
일요일 저녁이나 새벽 시간대에 몰려서 드문드문 찍혀 있는 무수한 커밋들을 로그 그래프로 정량 분석하여, 부서원들의 실질적인 착취 현황과 주말 노동 실태를 경영진 몰래 입증해내는 슬픈 유행 드립이다. 로그는 거짓말을 하지 않기 때문에 타임스탬프를 조작하기 전까진 빼도 박도 못한다.
5.2. git blame 마스터의 사냥감
로그 조회에서 더 나아가 특정 소스 코드 라인의 범인을 색출해주는 git blame 명령어와 시너지 효과를 내며, '대체 이 거지 같은 코드를 싸지른 놈이 누구냐!' 하고 격분하다가 결국 로그 맨 위에 뚜렷이 박힌 자기 이름 석 자를 확인하고 이불킥을 시전하는 고전적 비극이다.
6. 여담
- 특정 기여자 색출:
git log --author="gildong"처럼 작성하면, 기여도를 측정하거나 미워하는 동료의 코드 작업량만 핀포인트로 관찰할 수 있다. - 날짜 검색의 신비:
--since="3 days ago" --until="1 hour ago"와 같은 극도의 구어체 영문법 검색을 지원하여 신기함을 선사한다. - 복구의 열쇠: 혹시나 나락 간 커밋 히스토리를 보고 망연자실할 때, 이 로그 기록은 어떤 브랜치에서 분기되었는지 경로를 알려주는 구원의 북극성 역할을 한다.
7. 관련 문서
각주
-
실제로 이 웅장한 출력을 커스텀해서
.bashrc나.zshrc에git l이나git adg등의 단축 에일리어스로 등록해 두지 않으면 진정한 고인물 대열에 합류하지 못한다. ↩