git日志--before"&书信电报;日期>&引用;如果后跟一个早于<;日期>;
在其他承诺中,我有一份日期为2017年12月22日(4b9273bda1680867)。但当我运行git log时--“2017-12-28 00:00”之前,我得到的最新结果是2017-12-19(它是599241c3003的父母之一) 我怀疑这是因为4b9273bda1680的祖先比查询日期(599241c3003)新,但我找不到任何描述此行为的文档git日志--before"&书信电报;日期>&引用;如果后跟一个早于<;日期>;,git,date,Git,Date,在其他承诺中,我有一份日期为2017年12月22日(4b9273bda1680867)。但当我运行git log时--“2017-12-28 00:00”之前,我得到的最新结果是2017-12-19(它是599241c3003的父母之一) 我怀疑这是因为4b9273bda1680的祖先比查询日期(599241c3003)新,但我找不到任何描述此行为的文档 * commit 1a5b54d74c6130fae9806a8716744801e2152270 (HEAD -> _)
* commit 1a5b54d74c6130fae9806a8716744801e2152270 (HEAD -> _)
|\ Merge: 599241c 872e57d
| | Date: Thu Dec 28 11:01:53 2017 +0100
| |
| * commit 872e57d860aa4323b394cd63cc050d4746600d93
| | Date: Thu Dec 28 10:58:43 2017 +0100
| |
| * commit 648833bd98e724e53697e2a4c2b765a1c23360ee
| | Date: Wed Dec 27 09:03:52 2017 +0100
| |
| * commit 4b9273bda16808672d6a484c5ddf7ba7e4b6a4be
|/ Date: Fri Dec 22 17:41:21 2017 +0100
|
* commit 599241c3003e848fefc7316dbff6b64e75fbd744
|\ Merge: 42507fd 069a9d3
| | Date: Thu Dec 28 11:00:45 2017 +0100
正如@RaymondChen和@torek提到的,提交有两个日期与之关联。“作者”日期标识您第一次运行
git commit
的时刻,“提交”日期为任何重新应用提交的时间戳(例如,--amend
s,rebase
,…)。你可以在网站上阅读更多关于他们的信息
git日志-1的输出--pretty=fuller 4b927:
commit 4b9273bda16808672d6a484c5ddf7ba7e4b6a4be
...
AuthorDate: Fri Dec 22 17:41:21 2017 +0100
...
CommitDate: Thu Dec 28 11:01:29 2017 +0100
另外,根据git log
的规定,git日志不允许按作者的日期进行过滤(即使这是输出中的默认值)。按作者日期筛选的唯一方法是使用一些脚本魔法。
我的bash实现:
# git-author-date-before()
# ------------------------
# args:
# $1 - unix timestamp for limiting date
# $@ - any additional arguments will be passed to `git show`.
# example usages:
#
# git-author-date-before 1514415600
# git-author-date-before $(date -j -f '%Y %m %d %H %M %S' '2017 12 23 00 00 00' '+%s') --pretty=fuller
#
function git-author-date-before() {
END_TIMESTAMP="$1"; shift;
git log --format="%at %H" \
| sort -r \
| awk -v t1=$END_TIMESTAMP '$1 <= t1 { print; }' \
| cut -d ' ' -f 2 \
| xargs git show "$@"
}
#git-author-date-before()
# ------------------------
#args:
#$1-限制日期的unix时间戳
#$@-任何其他参数都将传递给“git show”。
#示例用法:
#
#git作者日期1514415600之前
#git作者日期早于$(日期-j-f'%Y%m%d%H%m%S''2017 12 23 00 00 00'+%S')--pretty=fuller
#
函数git-author-date-before(){
END_TIMESTAMP=“$1”移位;
git日志--format=“%at%H”\
|sort-r\
|awk-vt1=$END\u TIMESTAMP'$1--before
对提交时间进行操作。但是默认情况下,git log
只显示作者时间。这很可能是@RaymondChen所说的。要检查,请运行git log-1--pretty=fuller 4b9273bda1680867
查看提交时您认为应该包含的作者和提交人日期不包括在内。