git log -p 파일 하나의 변경 이력을 한번에 보기

파일 하나의 변경 이력을 한번에 확인해야 할 때가 가끔 있다. 물론 GUI 도구들이 워낙 잘 되어 있어서 쉽게 파악이 가능한 부분이지만 콘솔에서 필요할 때 다음의 명령어를 활용할 수 있다.

git log는 다양한 기능을 가지고 있는데 단순히 커밋 로그만 보여주는 것 외에도 포맷을 달리 하거나 diff를 같이 보여준다거나 하는 기능이 있다. 여기서는 단일 파일을 확인하는 방법을 위주로 살펴보려 한다.

다음 명령어는 해당 파일이 커밋된 기록을 한번에 확인할 수 있다.

$ git log <filename>

이 목록을 diff의 결과처럼 라인별 변경 사항을 확인하고 싶다면 -p 플래그를 사용할 수 있다.

$ git log -p <filename>

내용이 너무 많으면 -<숫자> 플래그로 출력 수를 정할 수 있다.

$ git log -p -5 <filename>

특정 키워드의 변경을 확인하고 싶다면 grep을 활용할 수 있다. grep\|를 넣어 OR 색인이 가능하다. 다음은 2011070102 라는 텍스트와 함께 커밋 해시, 커밋한 사용자, 일자를 출력하는 예다.

$ git log -p <filename> | grep '2011070102\|commit \|Author:\|Date:'

1.7.2 이후에서는 --word-diff라는 플래그가 추가되었는데 플래그 이름처럼 행마다의 diff가 아니라 단어 기준의 diff를 출력해준다. (문서를 리포지터리에서 관리한다면 정말 유용하다.) 물론 git diff에서도 사용 가능한 플래그다.

$ git log -p --word-diff <filename>

상세한 설명은 Git의 기초 – 커밋 히스토리 조회하기 페이지에서 확인할 수 있다.

김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

June 30, 2014

ssh 인증키 생성 및 서버에 등록하기

ssh key를 생성하고 서버에 등록하는 방법은 복잡하지 않다. 으로 공개키/비밀키 한 쌍을 생성하고, 공개키 내용을 접속할 서버에 에 저장하면 해당 서버에 비밀번호 없이 ssh 접속이 가능하다. 다음은 클라이언트에서 인증키를 생성하는 방법이다.…

May 28, 2014

기계식키보드 Leopold FC700RT 갈축 사용기

2013년 2월 한국 다녀올 당시 레오폴드 키보드를 구입해서 왔다. 당시 회사에서 사용했던 이상한 키배열의 삼성 노트북 이후 키보드에 관심이 생겨서 관련 글을 읽다보니 기계식 키보드에 대해 좋은 인상을 받아 구입했다. 구입할 때 직접 타건해보고 구입…