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
如何获得包含更多信息的相同列表?
答案 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
它将显示带有提交哈希的提交消息。