2013-10-21 35 views
0

git cherry命令很適合看what commits have happened between two branches。但是,默認情況下,它只是給你一個提交ID的列表 - 沒有這些信息。查看分支機構(git櫻桃)與描述之間的提交?

$ git cherry master dev # Commits in "dev" since it forked from "master" 
+ 54408ddc6403376c638d5bfc94c033ab655da7b3 
+ 68bc4277954b7de4c95881904de22f1d443366ae 
+ d74ab86eee75a8e5c1a835a6e69e74c01d4186e8 

如何獲得更多信息的相同列表?

回答

2

您可以通過管道git cherry輸出通過另外兩個命令實現這一點:

首先使用sed刪除+在每行的開始離開原始提交的ID:

$ git cherry master dev | sed 's/^+ //' 
54408ddc6403376c638d5bfc94c033ab655da7b3 
68bc4277954b7de4c95881904de22f1d443366ae 
d74ab86eee75a8e5c1a835a6e69e74c01d4186e8 

現在使用xargs --max-lines=1將每個提交ID傳遞到git log -1,然後可以顯示關於每個提交的其他信息:

$ git cherry master dev | sed 's/^+ //' | xargs --max-lines=1 git log -1 --pretty=format:"%h [%ad] %an : %s" --date=short 
54408dd [2013-10-09] Robin Winslow : Update Binaries submodule 
68bc427 [2013-10-09] Robin Winslow : Update reference dependencies for Website 
d74ab86 [2013-10-09] Robin Winslow : Remove non-exisent files from Website project 

注意:您可以定製--pretty=format:"%h [%ad] %an : %s" --date=short部件以獲取您喜歡的任何輸出git log