204

我有一个提交 c。我想获得那个确切的提交 c + 元信息的变更集,而不是其他的。有没有比git log -p c^..c这样做更简单的方法?

4

4 回答 4

303

您可以使用show

git show commit_id
于 2010-11-02T21:20:16.390 回答
68

Michal Trybus 的回答是最简单的。但是,如果您不希望输出中的差异,您可以随时执行以下操作:

git log -1 -U c

这将为您提供提交日志,然后您将完全控制所有 git 日志记录选项以实现自动化目的。在您的实例中,您说您想要更改集。实现这一点的最易读的方法是:

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

或者,如果您使用的 git 版本大于 1.8.X,它将是:

git log --name-status --diff-filter="ACDMRT" -1 -U c

这将为您提供类似于以下内容的结果:

commit {c}
Author: zedoo <zedoo@stackoverflow.com>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

当然,您可以过滤掉您认为合适的任何事件,并通过此处详细记录的传统 git-log 命令格式化返回。

于 2012-08-03T16:01:58.910 回答
18

git log -p c -1就是这样做的。

于 2010-11-02T21:18:51.480 回答
1

您可以使用提交的描述过滤更改:

git log --grep='part_of_description' -p

在哪里git log --grep='part_of_description'选择包含“part_of_description”的提交并-p显示每个提交的变更集

于 2020-01-15T16:38:50.140 回答