2012-11-03 3 views
2

git log의 출력을 --pretty으로 사용자 정의 할 수 있으며 --numstat을 사용하여 추가 및 삭제 된 행 수를 표시 할 수 있습니다.parseable git log 출력

$ git log --pretty=format:"%h - %ar : %s" --numstat config*.ini 

f665c63 - 6 months ago : fixes session end post 
1  1  config.ini 

4541de2 - 7 months ago : fixes missing strings 
6  1  config.ini 
3  1  config_office.ini 

하지만 내가 원하는 것은 커밋 정보와 파일의 변경 내용을 각각 한 줄씩 표시하는 것입니다. 이런 식으로 뭔가 :

1  1  config.ini   f665c63 - 6 months ago : fixes session end post 
6  1  config.ini   4541de2 - 7 months ago : fixes missing strings 
3  1  config_office.ini  4541de2 - 7 months ago : fixes missing strings 

grepsort 등 자식은 이미이 기능을 제공 하는가 사용하여이 출력을 구문 분석하는 간단한 것이 방법은?

답변

1

내가 알 수있는 한, git log은 기본적으로 그렇게 할 수 없습니다. 그러나이 나오지 명령은 그것을 할 것입니다 : 그것은 --numstat 라인을 찾습니다

sed '/^[0-9]\+\t[0-9]\+\t[^\t]\+$/ b file; h; d; : file; G; s/\n/\t/' 

. numstat 이외의 모든 행은 보류 버퍼로 복사되고 인쇄되지 않습니다. numstat 출력이있는 행은 보류 버퍼의 현재 내용을 추가하고 가운데에 개행 문자를 남기며 탭으로 대체됩니다.

관련 문제