如何让 `git log` 只显示提交日期,没有其他
How to make `git log` show only the commit date, nothing else
我只想通过 git log
仅显示 提交日期 来快速浏览项目的历史记录,仅此而已。我们怎样才能最好地做到这一点?
更新:
原来我实际上是在询问 作者 日期,这就是 git log
显示的日期。要查看 提交者 日期,可以不同,运行 git log --pretty=fuller
.
另见此处:Why is git AuthorDate different from CommitDate?
为了帮助说明有不同的日期:要在 运行 宁 git commit
时设置 author 日期,请使用:
git commit ---date "<date>"
要同时设置 提交者 日期,您必须执行以下操作:
GIT_COMMITTER_DATE="<date>" git commit --date "<date>"
看这里:How can one change the timestamp of an old commit in Git?
1。简单的方法:
(这个答案是第一个答案;这部分是在@TTT 写了 之后添加的,这教会了我这个更简单的方法)。
# ad = author date
git log --format=%ad
# cd = committer date
git log --format=%cd
%cd
显然代表“提交者日期”。将其与代表“作者日期”的 %ad
进行对比。 (我不确定有什么区别,也不确定这些日期如何或为什么会不同)。
谢谢,。现在我明白了它是如何工作的,我在文档中找到了适当的格式字符串部分:
执行 man git log
,然后按 / 搜索正则表达式 format:<format-string>
并输入该正则表达式并按 Enter。搜索 %cd
也会跳转到该部分。
2。困难的方法(我最初的尝试):
测试于 Linux Ubuntu:
获取作者日期(--format=%ad
,上面,我现在知道 after-the-fact)的一种方法是通过 grep
过滤 git log
的输出。这是 git log HEAD
的答案。将 HEAD
替换为您想要的任何分支名称或提交哈希。
仅查看所有提交的日期:
git log HEAD | grep 'Date:' | grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
示例输出:
Sun Apr 26 19:17:49 2020 -0700
Sun Apr 26 16:51:21 2020 -0700
Sun Apr 26 15:35:16 2020 -0700
Sat Apr 25 23:21:37 2020 -0700
Sat Apr 25 23:12:07 2020 -0700
Sat Apr 25 23:06:44 2020 -0700
Tue Apr 14 23:02:34 2020 -0700
Sun Apr 5 23:26:20 2020 -0700
Sun Apr 5 23:20:34 2020 -0700
Sun Apr 5 18:08:44 2020 -0700
Sun Apr 5 17:56:08 2020 -0700
Sun Apr 5 10:06:04 2020 -0700
Sat Apr 4 20:58:33 2020 -0700
Sat Mar 21 14:38:53 2020 -0700
Thu Mar 19 20:37:27 2020 -0700
Thu Mar 19 18:16:55 2020 -0700
Thu Mar 19 18:01:53 2020 -0700
或者,要仅查看 most-recent 日期 ,请添加 -1
:
git log -1 HEAD | grep 'Date:' | grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
输出:
Sun Apr 26 19:17:49 2020 -0700
...或要查看 只是 最旧的 日期,请使用 $(git rev-list --max-parents=0 HEAD)
而不是 HEAD
(再次,将该命令中的 HEAD
替换为您要查看的适当分支或提交):
git log -1 $(git rev-list --max-parents=0 HEAD) | grep 'Date:' \
| grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
输出:
Thu Mar 19 18:01:53 2020 -0700
说明
$(git rev-list --max-parents=0 HEAD)
获取第一次提交的提交哈希。
- 在这里查看我的回答:How to show first commit by 'git log'?
grep 'Date:'
仅查找其中包含文本 Date:
的行。
grep -o ' .*$'
通过仅匹配 3 个空格和后面的文本来剥离 Date:
部分。
- 关于
-o
部分,请参阅:Can grep show only words that match search pattern?
grep -o '[^\r\n\t\f\v ].*$'
通过仅匹配 non-whitespace 个字符去除前面的空格。
-1
在 git log
中表示:“仅 1 次提交”
HEAD
是 currently-checked-out 提交哈希
如果您只想查看 提交者 日期(使用当前 ID 写入提交的日期):
git log --format=%cd
如果您只想查看 author 日期(提交最初编写的日期,但如果提交被修改、变基、cherry-picked, 等等,导致它获得一个新的提交 ID):
git log --format=%ad
有关提交者和作者日期之间差异的更多信息:Why git AuthorDate is different from CommitDate?。
日期可以用不同的方式显示。 Here's a list of built-in options.
此外,如果您不想使用寻呼机,只需在 git
命令后添加 --no-pager
,如下所示:
git --no-pager log --format=%ad
我只想通过 git log
仅显示 提交日期 来快速浏览项目的历史记录,仅此而已。我们怎样才能最好地做到这一点?
更新:
原来我实际上是在询问 作者 日期,这就是 git log
显示的日期。要查看 提交者 日期,可以不同,运行 git log --pretty=fuller
.
另见此处:Why is git AuthorDate different from CommitDate?
为了帮助说明有不同的日期:要在 运行 宁 git commit
时设置 author 日期,请使用:
git commit ---date "<date>"
要同时设置 提交者 日期,您必须执行以下操作:
GIT_COMMITTER_DATE="<date>" git commit --date "<date>"
看这里:How can one change the timestamp of an old commit in Git?
1。简单的方法:
(这个答案是第一个答案;这部分是在@TTT 写了
# ad = author date
git log --format=%ad
# cd = committer date
git log --format=%cd
%cd
显然代表“提交者日期”。将其与代表“作者日期”的 %ad
进行对比。 (我不确定有什么区别,也不确定这些日期如何或为什么会不同)。
谢谢,
执行 man git log
,然后按 / 搜索正则表达式 format:<format-string>
并输入该正则表达式并按 Enter。搜索 %cd
也会跳转到该部分。
2。困难的方法(我最初的尝试):
测试于 Linux Ubuntu:
获取作者日期(--format=%ad
,上面,我现在知道 after-the-fact)的一种方法是通过 grep
过滤 git log
的输出。这是 git log HEAD
的答案。将 HEAD
替换为您想要的任何分支名称或提交哈希。
仅查看所有提交的日期:
git log HEAD | grep 'Date:' | grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
示例输出:
Sun Apr 26 19:17:49 2020 -0700
Sun Apr 26 16:51:21 2020 -0700
Sun Apr 26 15:35:16 2020 -0700
Sat Apr 25 23:21:37 2020 -0700
Sat Apr 25 23:12:07 2020 -0700
Sat Apr 25 23:06:44 2020 -0700
Tue Apr 14 23:02:34 2020 -0700
Sun Apr 5 23:26:20 2020 -0700
Sun Apr 5 23:20:34 2020 -0700
Sun Apr 5 18:08:44 2020 -0700
Sun Apr 5 17:56:08 2020 -0700
Sun Apr 5 10:06:04 2020 -0700
Sat Apr 4 20:58:33 2020 -0700
Sat Mar 21 14:38:53 2020 -0700
Thu Mar 19 20:37:27 2020 -0700
Thu Mar 19 18:16:55 2020 -0700
Thu Mar 19 18:01:53 2020 -0700
或者,要仅查看 most-recent 日期 ,请添加 -1
:
git log -1 HEAD | grep 'Date:' | grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
输出:
Sun Apr 26 19:17:49 2020 -0700
...或要查看 只是 最旧的 日期,请使用 $(git rev-list --max-parents=0 HEAD)
而不是 HEAD
(再次,将该命令中的 HEAD
替换为您要查看的适当分支或提交):
git log -1 $(git rev-list --max-parents=0 HEAD) | grep 'Date:' \
| grep -o ' .*$' | grep -o '[^\r\n\t\f\v ].*$'
输出:
Thu Mar 19 18:01:53 2020 -0700
说明
$(git rev-list --max-parents=0 HEAD)
获取第一次提交的提交哈希。- 在这里查看我的回答:How to show first commit by 'git log'?
grep 'Date:'
仅查找其中包含文本Date:
的行。grep -o ' .*$'
通过仅匹配 3 个空格和后面的文本来剥离Date:
部分。- 关于
-o
部分,请参阅:Can grep show only words that match search pattern?
- 关于
grep -o '[^\r\n\t\f\v ].*$'
通过仅匹配 non-whitespace 个字符去除前面的空格。-1
在git log
中表示:“仅 1 次提交”HEAD
是 currently-checked-out 提交哈希
如果您只想查看 提交者 日期(使用当前 ID 写入提交的日期):
git log --format=%cd
如果您只想查看 author 日期(提交最初编写的日期,但如果提交被修改、变基、cherry-picked, 等等,导致它获得一个新的提交 ID):
git log --format=%ad
有关提交者和作者日期之间差异的更多信息:Why git AuthorDate is different from CommitDate?。
日期可以用不同的方式显示。 Here's a list of built-in options.
此外,如果您不想使用寻呼机,只需在 git
命令后添加 --no-pager
,如下所示:
git --no-pager log --format=%ad