2012-10-03 9 views
4

매우 구체적인 형식으로 나의 자식 로그를 포맷하려고합니다.- git get --source in --format

나는 원래 (각 커밋에 대한) 다음과 같은 출력을 생성 할 것이다 git log --format="%H,%an,%ae,%ad,%p"를 사용했다 : 각

b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,[email protected],Fri Sep 7 14:43:16 2012 -0400,206f23d 

지금 내가 심판을 얻기 위해 노력하고 있어요 (즉, 태그/지점) 정보를 커밋합니다. 나는 git log --source 명령을 사용하여이 정보를 볼 수 있어요이 내가 원하는 것을 정확하게 보여줍니다 (즉, 커밋 SHA 후에있는 심판) :

commit 84deec66f94085ee3a0e6f6204f06296d7a1a903 refs/remotes/origin/HEAD 
Author: Kevin Jalbert <[email protected]> 
Date: Fri Sep 21 17:02:33 2012 -0400 

    commit message 

commit f1e1b8d11defc48839557db5e54a5a6f7ffe6cad refs/heads/issue_5 
Author: Kevin Jalbert <[email protected]> 
Date: Thu Sep 13 15:34:36 2012 -0400 

    commit message 

commit d7acdbd957d9b477f8849fd5a37882cdd78d8e1f refs/tags/v0.3.0 
Author: Kevin Jalbert <[email protected]> 
Date: Wed Sep 12 16:48:46 2012 -0400 

    commit message 

내가 뭘하려고이 정보를 포함하는 것입니다 나는이 --source 플래그를 기반으로 커밋의 브랜치/태그/심판을 참조하는 모든 형식 자리를 찾을 수 없습니다

b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,[email protected],Fri Sep 7 14:43:16 2012 -0400,206f23d,refs/remotes/origin/HEAD 

:처럼 내 원래 --format="..." 명령의 끝에서 나는 보이는 출력을 할 것이다, 그래서 . 올바른 자리 표시자가 누락 되었습니까? 아니면 내가 원하는 사용자 정의 정보와 함께 ref를 포맷/표시 할 수있는 다른 방법이 있습니까?

답변

0

%d 당신이 찾고있는 것일 수 있습니다 - 그것은 각 커밋을 참조하는 지점/태그를 보여줍니다.

+1

% d는 커밋을위한 분기/태그를 보여줍니다. 지사/태그에 대한 가장 최근의 커밋에만 표시됩니다. 다른 말로하면, 모든 커밋이이 정보를 단지 소수의 정보 만 가질 수있는 것은 아닙니다. 분기/태그가 만들어 지거나 변경 될 때 커밋 여부와 관계없이 분기/태그를 일관되게 유지하는 방법을 더 찾고 있습니다. –

1

이 또한 찾고있었습니다. 나는 git-log의 일환으로 깃발을 찾을 수 없습니다하지만 다음은 CSV 행의 마지막에 열을 추가, 작동합니다

$ git log --no-color --source --oneline --all | while read sha1 srcref subject 
> do echo "$(git log -1 --format="%H,%an,%ae,%ad,%p" $sha1),$source" 
> done 

--oneline의 형식은 --source이되도록 제공 될 때 %h %<our missing format character> %s입니다 거기에서 우리를 부분적으로 데려 간다. 그런 다음 SHA1을 나머지 형식 지정자 인 git log -1에 다시 입력하면 남은 시간이됩니다.