• git log after 时间点的小缺陷


          我们经常会使用git log 加一个时间段来获取某段时间的提交记录,比如获取从2022年6月1号到现在的记录,我们常用的是git log --after="2022-06-01" 或者把after换成since,

    我们明确的知道统计是包含日期当天的,也就说说包含6月1号的提交,但是大家想过没,这个时间点是从什么时候开始呢,是从2022年6月1号的0点0分开始算吗?

    其实不然,最近我正好在统计近期活动分支仓库的代码提交评率,使用shell来统计,首先就要用到git log 接时间点的命令,就比如上面说到的2022年6月1号到现在的提交记录有几条,我用的最多的也是git log --after="2022-06-01"来统计,但是我总是会发现偶尔某些代码仓的分支会统计少了,因为我们使用了gerrit,所以可以直接了当的看出时间范围内有多少条提交。

     使用命令:git log --after="2022-06-01" --oneline  |wc -l   统计到test仓库2022.6.1之后的提交数得到的结果是12

    但是我在gerrit上看到这个仓库2022.6.1号后不是12条,是14条,如下:

    对比发现,是‘Jun 1’那两条没统计到,为什么使用命令git log --after="2022-06-01" --oneline  |wc -l 统计不到呢,他们也是6月1号的数据啊?

    难道不是从0点0分0秒开始算的吗?

    然后我尝试将命名加上时分秒,修改为git log --after="2022-06-01 00:00:00” --oneline  |wc -l 得到的结果竟然对了,是14,和gerrit上显示的一样。

    然后点开‘Jun 1’的两条数据,倒数第一条的时间是2022.6.1 10:33AM,倒数第二条数据时间是2022.6.1 1:53PM,当前执行统计命令git log --after="2022-06-01" --oneline  |wc -l的时间是2022.6.18 2:37PM ,所以我认为应该是按照当前时间2:37PM来倒退到其实时间的时间点,也就是说只能统计到2022.6.1 2:37PM之后到当前时间2022.6.18 2:37PM的数据?

    为了证实我的猜想,我们可以看到截图中6月2号也有两条数据,其中下面一条的时间是2022.6.2 10:20AM 上面一条数据时2022.6.2 3:28PM,那我就统计2号到当前时间2022.6.18 2:37PM的,执行git log --after="2022-06-02" --oneline  |wc -l ,得到的结果是11,但是分明gerrit上显示的是12条数据,当我换成git log --after="2022-06-02 00:00:00” --oneline  |wc -l 时我得到的数据是12,证实了我的猜想。

    总结:

      如果想得到时间段的提交记录,不仅需要使用年月日,还需要添加具体的起始时间,比如git log --after="2022-06-01 00:00:00” --oneline  

      同理,如果要指定确定的截止时间,也要在截止日期后面加上截止时间,比如:git log --since="2022-06-01 00:00:00”   untile="2022-06-11 23:59:59" --oneline 

    另外git log 也可以使用相对时间哟,比如 “18days” "two weeks" "yesterday"

  • 相关阅读:
    随意给一组数,找出满足一下条件的a[i],a[i]左边的数小于等于a[i],a[i]右边的数大于等于a[i]
    SVN
    四种进程或线程同步互斥的控制方法
    二叉树转双向链表
    最大连续子序列和
    找出一个字符串中第一个只出现一次的字符
    清除浮动的那些事
    jQuery中ready与load事件的区别
    css 经典布局之圣杯布局(左右固定,中间自适应)
    window.name + iframe跨域实例
  • 原文地址:https://www.cnblogs.com/zndxall/p/16388352.html
Copyright © 2020-2023  润新知