2012-10-03 8 views
4

我想格式化我的git日誌在一個非常特定的格式。Git得到--source信息 - 格式

我最初使用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 

我所試圖做的是包含此信息在我原來的--format="..."命令的結束,所以我將有如下所示的輸出:

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

我似乎無法找到任何格式佔位符引用的提交基礎上,--source標誌分支/標籤/ REF 。我是否錯過了正確的佔位符?或者是否有另一種方式來格式化/顯示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格式%h %<our missing format character> %s--source提供,從而使讓我們在那裏的一部分。然後將SHA1送回git log -1,其餘格式說明符讓我們休息。