请参阅分支(git cherry)和描述之间的提交?

时间:2013-10-21 08:42:57

标签: git git-log git-cherry

git cherry命令非常适合查看what commits have happened between two branches。但是,默认情况下,它只会为您提供一个提交ID列表 - 而不是提供信息。

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

如何获得包含更多信息的相同列表?

2 个答案:

答案 0 :(得分: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获得您喜欢的输出

答案 1 :(得分:1)

您可以使用git cherry -v master dev

它将显示带有提交哈希的提交消息。