简介
🧑💻 你是 Git 或 LabEx 的新手吗?我们建议你从 Git 快速入门 课程开始学习。
Git 是一个强大的版本控制系统,它允许开发者跟踪代码库的变更。Git 最实用的功能之一是能够查看特定日期范围内的提交记录。当你试图追踪 bug 或了解项目历史时,这一功能会非常有用。
🧑💻 你是 Git 或 LabEx 的新手吗?我们建议你从 Git 快速入门 课程开始学习。
Git 是一个强大的版本控制系统,它允许开发者跟踪代码库的变更。Git 最实用的功能之一是能够查看特定日期范围内的提交记录。当你试图追踪 bug 或了解项目历史时,这一功能会非常有用。
要开始探索 Git 的日期范围过滤功能,我们首先需要一个 Git 仓库来进行操作。我们将使用 LabEx 提供的 git-playground 仓库。
让我们从克隆仓库开始:

git clone https://github.com/labex-labs/git-playground
你应该会看到类似以下的输出:
Cloning into 'git-playground'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
cd git-playground
现在我们已经将仓库克隆到本地机器上,就可以开始探索提交历史了。
git log 命令现在我们已经克隆了仓库,让我们来学习如何使用 git log 命令查看提交历史。
git log 命令会显示仓库中所有提交的列表,从最近的提交开始。每个提交记录包含以下信息:
让我们查看基本的提交历史:
git log
你应该会看到类似以下的输出:
commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date: Wed Apr 26 14:16:25 2023 +0800
Added file2.txt
commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date: Wed Apr 26 14:16:25 2023 +0800
Added file1.txt
commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date: Wed Apr 26 14:16:00 2023 +0800
Initial commit
如果输出内容很长,你可以使用以下操作进行浏览:
Space 键向前翻页b 键向后翻页q 键退出日志视图请注意,每个提交都有一个唯一的标识符(长十六进制字符串)、作者信息、提交的日期和时间,以及描述所做更改的信息。
现在我们将学习如何根据特定日期过滤提交。Git 为此提供了两个有用的选项:
--since 或 --after:显示比特定日期更新的提交--until 或 --before:显示比特定日期更旧的提交当我们组合使用这些选项时,就可以查看特定日期范围内的提交。
让我们查看 2023 年 4 月 25 日至 2023 年 4 月 27 日之间发生的所有提交:
git log --since='Apr 25 2023' --until='Apr 27 2023'
此命令将显示 2023 年 4 月 25 日至 4 月 27 日之间所做的所有提交。输出应该如下所示:
commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date: Wed Apr 26 14:16:25 2023 +0800
Added file2.txt
commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date: Wed Apr 26 14:16:25 2023 +0800
Added file1.txt
commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date: Wed Apr 26 14:16:00 2023 +0800
Initial commit
Git 接受多种日期格式,包括:
"YYYY-MM-DD"(例如,2023-04-25)"Month DD YYYY"(例如,Apr 25 2023)"DD Month YYYY"(例如,25 Apr 2023)尝试使用另一种日期格式,看看不同日期范围内是否有提交:
git log --since='2023-04-20' --until='2023-04-24'
如果在该时间段内没有提交,此命令可能不会返回任何结果,这是完全正常的。
Git 还支持相对日期,这对于快速查看近期活动非常方便。
让我们查看过去 12 周内的所有提交:
git log --since='12 weeks ago'
根据你运行此命令的时间,如果你在该时间段内有提交,你可能会看到所有提交,或者只看到其中一部分。
其他有用的相对日期格式包括:
"X days ago""X months ago""yesterday""last week"让我们尝试查看过去一年的提交:
git log --since='1 year ago'
此命令将显示过去一年中所做的所有提交。
git log 提供了各种格式化选项来定制输出。以下是一些有用的选项:
git log --oneline --since='Apr 25 2023' --until='Apr 27 2023'
输出将如下所示:
d22f46b (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD) Added file2.txt
cf80005 Added file1.txt
b00b937 Initial commit
git log --name-status --since='Apr 25 2023' --until='Apr 27 2023'
此命令显示每次提交中修改的文件的状态,这有助于你了解具体做了哪些更改。
这些格式化选项可以与日期过滤器结合使用,以创建强大的查询,帮助你更有效地了解项目的历史。
在本次实验中,你学习了如何使用 Git 查看特定日期范围内的提交。你探索了以下内容:
git log 命令查看提交历史--since 和 --until 选项根据特定日期范围过滤提交git log 的输出这些技能对于理解项目历史、追踪 bug 以及回顾代码库的开发时间线至关重要。当你继续使用 Git 时,这些过滤技巧将帮助你轻松地浏览大型仓库。