如何在 git 分支中获取给定作者的提交消息历史记录? [复制]

Posted

技术标签:

【中文标题】如何在 git 分支中获取给定作者的提交消息历史记录? [复制]【英文标题】:How to get the history of commit messages for a given author in a git branch? [duplicate] 【发布时间】:2020-01-07 14:50:31 【问题描述】:

我想在 git 分支中获取给定作者的提交消息历史记录。除了通过编程解析日志,还有什么简单的方法可以实现吗?

更新:

以下是为我做同样事情的解释:

git log --author='some author' --pretty=oneline --abbrev-commit
git log --author='some author' --oneline

git log --help 提到以下内容:

   Commit Formatting
       --pretty[=<format>], --format=<format>
           Pretty-print the contents of the commit logs in a given format, where <format> can be one of oneline, short, medium, full, fuller, email, raw and
           format:<string>. See the "PRETTY FORMATS" section for some additional details for each format. When omitted, the format defaults to medium.

           Note: you can specify the default pretty format in the repository configuration (see git-config(1)).

       --abbrev-commit
           Instead of showing the full 40-byte hexadecimal commit object name, show only a partial prefix. Non default number of digits can be specified
           with "--abbrev=<n>" (which also modifies diff output, if it is displayed).

           This should make "--pretty=oneline" a whole lot more readable for people using 80-column terminals.

       --no-abbrev-commit
           Show the full 40-byte hexadecimal commit object name. This negates --abbrev-commit and those options which imply it such as "--oneline". It also
           overrides the log.abbrevCommit variable.

       --oneline
           This is a shorthand for "--pretty=oneline --abbrev-commit" used together.

【问题讨论】:

你到底是什么意思?特定作者提交的所有提交消息? @jonrsharpe 更改为消息。谢谢。 【参考方案1】:

git log --author=&lt;author&gt;

如果说你正在寻找亚当布朗提交

git log --author="adam"

git log --author=adam

git log --author=Brown

也可以。如果您不需要任何空格,引号是可选的。

如果您打算搜索所有分支,而不仅仅是当前提交在您的存储库中的祖先,请添加 --all。

因此,要列出 adam 或 damian 的提交,您可以执行如下的正则表达式:

git log --author="\(damian\)\|\(adam\)"

git log --committer="\(damian\)\|\(amit\)"

【讨论】:

【参考方案2】:

您必须提供在 GIT 存储库中注册的作者姓名。或者作者的电子邮件地址也可以。

例如

git log --author='Bharat Biswal'
git log --author='bharat.biswal@gmail.com'

【讨论】:

您可以选择使用他们的电子邮件地址。 谢谢贾斯汀。我已经更新了答案。【参考方案3】:

git log --author=&lt;author name pattern&gt; 详情请查看git log 的手册页。

【讨论】:

以上是关于如何在 git 分支中获取给定作者的提交消息历史记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Git 修改多个历史提交记录的 Author

Git 如何从特定的提交中创建一个新的分支

Git 如何从特定的提交中创建一个新的分支

SVN和GIT提交历史记录和代码差异

在 Git 中,如何在不挑选新分支的情况下对历史中具有多个合并提交的分支进行 rebase + squash

同步上游的提交时,如何在 Git 中清理提交历史?