单个修订版的git log


179

我有承诺c。我想获取确切的提交c +元信息的变更集,而无需其他任何变更。有比这更简单的方法git log -p c^..c吗?

Answers:



60

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

当然,你可以过滤掉任何一个事件,您认为合适的,正如你通过这是有据可查的传统混帐日志命令格式化希望返回这里


14
如果您不想要差异,请执行git show --name-only <sha1>
dbn

16
如果您只是不想使用diff,请使用git show -s <commit>
moeffju 2014年

3
怎么-1办?它在哪里记录?
亚历克斯

1
@alex请参见git help log“提交限制”部分下的输出。或参见git-scm.com/book/en/v2/… -<number>限制输出的提交次数。
LarsH


0

您可以用来按提交描述过滤更改:

git log --grep='part_of_description' -p

在其中git log --grep='part_of_description'选择包含“ part_of_description”的提交,并-p显示每个提交的更改集

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.