Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git日志:按提交过滤';作者日期_Git - Fatal编程技术网

Git日志:按提交过滤';作者日期

Git日志:按提交过滤';作者日期,git,Git,我有这样的承诺 commit 8a183536da1641afa6bd5a27ae391b387b7cd052 Author: hidden AuthorDate: Fri Sep 7 10:13:59 2012 Commit: hidden CommitDate: Fri Dec 7 17:29:24 2012 我想过滤日志并显示提交人AuthorDate 我尝试了——从&——直到选项,但它实际上过滤了提交日期 这意味着我只能在 git log --since='2012-1

我有这样的承诺

commit 8a183536da1641afa6bd5a27ae391b387b7cd052
Author:     hidden
AuthorDate: Fri Sep 7 10:13:59 2012
Commit:     hidden
CommitDate: Fri Dec 7 17:29:24 2012
我想过滤日志并显示提交人AuthorDate

我尝试了
——从
&
——直到
选项,但它实际上过滤了提交日期

这意味着我只能在

git log --since='2012-12-01' --until='2012-12-10'
如果我想在开始日期“2012-09-01”和结束日期“2012-09-10”之前获取提交筛选器


有什么建议吗?

恐怕您需要编写一些脚本:

git log --format="%ad %H" --date=iso | sort | ruby -ane 'date = $F[0] ; hash = $F[3] ; puts hash if ("2013-08-23".."2013-09-26").cover?(date)'
给我:

3eddb854eaea971e9a60147153f0f3c9be4f1a5a dfeefd4715c4fddef0957c5aff238c525bb1def6 db654badb97f3784286171d4645e9face6a42865 62cdba07e6ae0cd28752491a83f584d3e18a5619 7643a0458a54200f8944583d66c089d63c1bf688 23b720852a36e959d0f45f9d11f05d4aa7ee0cb9 f729ec9c5bf37ee0284a8db47cbc79a0b53145bb bc2d647ae86fbff1246ba163a5a99d25ed2f3523 a0752b3cbae39698449be953153ddaafe35c054c 8e88fffc75cbdda333c86cb4f5eb9b5b30263c27 3EDDB854EAEA971E9A0147153F0F3C9BE4F1A5A dfeefd4715c4fddef0957c5aff238c525bb1def6 db654badb97f3784286171d4645e9face6a42865 62cdba07e6ae0cd28752491a83f584d3e18a5619 7643a0458a54200f8944583d66c089d63c1bf688 23b720852a36e959d0f45f9d11f05d4aa7ee0cb9 f729ec9c5bf37ee0284a8db47cbc79a0b53145bb bc2d647ae86fbff1246ba163a5a99d25ed2f3523 a0752b3cbae39698449be953153ddaafe35c054c 8E88FFFC75CBDDA3333C86CB4F5EB9B5B30263C27 不幸的是,
git日志3EDDB854EA971E9A0147153F0F3C9BE4F1A5A..8e88fffc75cbdda333c86cb4f5eb9b5b30263c27
不能保证工作,因为这些提交可能在不同的分支中

让我们解释一下我做了什么:

  • --format=“%ad%H”
    –将日志格式化为
    作者\u日期提交\u散列
  • --date=iso
    –日期采用
    YY-mm-dd HH:mm:SS
    格式
  • 排序
    –Unix命令,按字母顺序对行进行排序;它适合以ISO格式对日期进行排序
  • ruby-ane
    –执行ruby脚本-n表示对每一行执行,-a拆分这些行并将字段放入
    $F
    数组,-e精确执行脚本
  • (“2011-02-23”。“2011-02-26”)。封面?(日期)
    –从两个字符串创建范围,并检查日期是否包含在内(按照字母顺序,我们没有解析这些日期)
  • 我不知道下一步该做什么(给你更好的日志),但很高兴把你带到这一点

    git log --format=format:"%ai %aE %s"
    

    然后按作者姓名和/或日期进行grep

    有时我想找到我在某个日期编写的提交。为此,我使用了git log--all--author=jpo--format=“%ai%s”| grep-E^2015-09-01。不幸的是,这种方法通常不适用于按日期范围过滤,但对于问题中使用的范围,它可以很容易地完成:
    git log--all--author=jpo--format=“%ai%s”| grep-E^2012-12-(0.| 10)
    如果您想了解除了作者日期和提交消息之外的更多提交信息,只需在格式字符串中添加更多参数(请查看
    git帮助日志
    页面的PRETTY FORMATS部分)。

    @skalee
    Sep
    Dec
    不是同一件事……请参见:
    git log--format=format:%ai%aE%s”| grep'^2020-05-29*user@email.*$”