1

我在几个 git 项目的多个分支中工作。我想在所有这些项目和分支中获取我在特定日期的提交列表(用于时间表目的)。

虽然我可以为此目的编写一个实用程序脚本,但我不想重新发明轮子。有没有一种简单的方法可以做到这一点,使用现有的基于 unix 的工具或一些 git 高级用户配方?

4

2 回答 2

9

对于单个回购:

git log --all --after="<date> 00:00" --before="<date> 23:59" --author="<author>"

<date>可以是任何通用格式。 <author>区分大小写,并且还会检查电子邮件地址。

笔记:

这会查看提交者日期(此提交何时应用于此存储库/分支),而不是作者日期(此内容首次提交的时间)。如果您已经重新调整和/或挑选了樱桃,这一点很重要。作者日期似乎没有等效功能。

编辑:

要获取一组存储库的此日志,您可以运行:

for dir in repo1 repo2 ... repo_n; do
    git --no-pager --git-dir="$dir/.git" log --all \
        --after="<date> 00:00" \
        --before="<date> 23:59" \
        --author="<author>"
      && echo  # to add a blank line between logs
done
于 2012-06-25T12:20:33.103 回答
2

要使用多个存储库,您可以使用mr

在.mrconfig中定义自定义操作,例如。

[DEFAULT]
git_daylog = git log --branches --after="$* 00:00" --before="$* 24:00" --author="$(git config user.email)"

[gitrepos/my_blog_app]

[path_to_another_project_from_home]

...

并且您将能够说出mr daylog 26 june并获取当前目录下在 mr 注册的所有存储库的日志。

于 2012-06-26T08:49:41.953 回答