几分钟内设置自动 Git 提交时间戳
几分钟内设置自动 Git 提交时间戳
如果你曾试图证明某段代码是何时编写的,你就会知道那套手动流程:在每次重要提交后运行时间戳命令,把凭证存放在某个持久的地方,记住哪些文件已被覆盖,并祈祷你没有漏掉那个日后成为争议焦点的提交。这套流程重复、容易出错,而且几乎不可能在真实项目的整个生命周期中持续执行。
自动 Git 提交时间戳彻底消除了这一负担。借助合适的托管服务,它变成了一次性设置,只需几分钟——而不是一项持续的苦差事。Timestamp GIT 正好提供了这样的能力:一个 GitHub App,每晚将你的提交哈希锚定到比特币区块链上,你无需触碰命令行,也无需管理凭证文件。
本文将介绍设置流程、自动化流水线、监控以及最佳实践,让你可以一劳永逸。
你可以消除的重复性任务
传统的时间戳工作流迫使开发者陷入手动步骤的循环:
- 在每次提交后运行时间戳工具(否则可能漏掉重要提交)
- 在多台机器和多个仓库之间追踪
.ots凭证文件 - 记住哪些提交已经锚定,哪些还没有
- 每次推送到新分支或新仓库时都要重新执行流程
- 在需要证明在先技术时手动验证凭证
这是脆弱的。人会忘记。凭证会丢失。当流程依赖于记忆和纪律时,“我在此日期编写了这段代码”的整个证明理念就会崩塌。
你可以自己运行底层的 OpenTimestamps 协议,但那意味着围绕 CLI 命令编写脚本、处理凭证、追踪区块链确认。那是困难的方式——而这正是 Timestamp GIT 所消除的。
Timestamp GIT 自动化了每一步:一旦安装了 GitHub App,受监控仓库中的每一次提交都会被收集、批量处理,并每晚锚定到比特币。你永远不需要运行命令、管理凭证或记得给任何东西打时间戳。这是最真实意义上的自动 Git 提交时间戳。
有关安装本身的详细指南,请参阅安装 GitHub App 实现自动代码时间戳。本文重点介绍端到端设置以及之后的自动化运行。
一次性设置:连接你的仓库
设置只需几分钟。流程如下:
- 从 GitHub Marketplace 安装 Timestamp GIT GitHub App。
- 选择你要监控的仓库。 根据你的套餐,支持公共或私有仓库。
- 选择你的权限模式:
- 标准模式:GitHub App 需要对源仓库的只读访问权限。它只读取 HEAD 提交哈希——从不读取文件内容。
- 企业 ZK 模式:完全不读取源代码。你基础设施上的一个 GitHub Action 仅将提交哈希推送到 Timestamp GIT API。你的源代码永远不会离开你的环境。
- 确认安装。
之后就没有任何手动步骤了。系统会监控仓库,自动检测新提交,并每晚运行时间戳流水线。
如果你通过 Docker 镜像自托管,设置向导会引导你完成 GitHub App 的连接和实例配置。对于大多数团队来说,SaaS GitHub App 是最快的路径。
自动化流水线:从提交到比特币锚定
连接仓库后会发生以下事情:
每晚批量处理
每个提交哈希在到达时被存储在一个内存队列中。每晚,一个工作进程运行并将每个仓库的所有待处理哈希分组。它创建清单文件(.txt),原生构建 Merkle 树,并使用公共日历生成 OpenTimestamps 证明。
每日批次的 Merkle 根随后通过 OpenTimestamps 协议锚定到比特币区块中。一旦在区块链上确认,时间戳就变得不可变——任何实体,包括 Timestamp GIT,都无法更改或伪造它。
证明交付
锚定确认后(通常约 3 小时),Timestamp GIT 将清单和 .ots 凭证文件推送回你的仓库,存放在专用的 timestamps 分支或影子仓库中。你无需手动获取任何东西;证明与你的代码一起进行版本管理。
12 行代码实现企业 ZK 模式
如果你无法授予源代码的读取权限,企业 ZK 模式使用一个在你基础设施上运行的 GitHub Action。它仅将提交哈希推送到 API。以下是一个最小可运行示例:
name: Timestamp commit hash
on: [push]
jobs:
anchor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
curl -X POST "https://timestampgit.dev/api/timestamp/${{ github.repository }}/${{ github.ref_name }}/${{ github.sha }}/${{ secrets.TIMESTAMPGIT_HMAC }}"
这就是完整的 action。实际模板在企业 ZK 设置过程中提供,但原理很简单:将提交 ID 和签名 HMAC 发送到 API,除此之外没有任何东西离开你的环境。
用于状态、验证和审计的 REST API
自动化延伸到报告层面。公共端点让你无需登录仪表板即可查询证明状态:
# 最后锚定的比特币区块信息
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
# 已提交/已打时间戳的提交总数
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
# Shields.io 徽章的综合摘要
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
# 以 CSV 格式下载完整审计台账
curl -O https://timestampgit.dev/api/audit/your-org/your-repo
# 下载特定日期的 PDF 证书
curl -O https://timestampgit.dev/api/report/your-org/your-repo/2026-08-19
对于私有仓库,这些 URL 包含特定于你实例的加密 HMAC,因此只有授权用户才能访问状态。所有这些都是自动的——无需开发者干预。
监控与故障处理
流水线运行后,你需要了解证明状态的可视化方式以及检测问题的方法。
公共状态仪表板
每个仓库都有一个公共仪表板,位于 https://timestampgit.dev/status/{user}/{repo}。它显示:
- 证明持久性和最早锚定日期
- 提交和锚定的每日规律性
- 每次锚定的比特币区块和交易数据
- 时间戳活动的日历热力图
你还可以下载审计 CSV 和任意日期的 PDF 证书。这些对于合规和离线记录保存非常有用。
可嵌入的验证徽章
Timestamp GIT 提供了可以粘贴到 README 中的徽章代码片段。徽章显示实时验证状态,并链接到一个公共验证页面,任何人都可以在那里检查 Merkle 链。该页面在浏览器中本地执行所有计算——零知识验证。
处理延迟和遗漏的天数
比特币确认需要时间,通常约 3 小时。系统会自动处理这一延迟;一旦锚定确认,你的证明就会被写入。如果你在每晚截止时间之后提交,哈希会被包含在第二天的批次中。
如果某天没有提交,则不会为该天生成时间戳。现有证明仍然有效;系统只是跳过空批次。
对于私有仓库,HMAC 签名的 URL 保护状态和验证页面的访问。只有拥有正确 HMAC 的人才能看到证明状态。
可靠时间戳的最佳实践
要充分利用自动 Git 提交时间戳,请遵循以下准则:
- 定期提交。 系统每晚锚定所有待处理的哈希。每日提交意味着每日锚定,从而建立连续的记录。
- 保持证明分支或影子仓库完好无损。 不要删除
.ots文件或timestamps分支。那些是你的证据。 - 当源代码访问受限时使用企业 ZK 模式。 如果你无法授予源仓库的读取权限,GitHub Action 方法可以在保持代码本地化的同时仍然锚定哈希。
- 对于隔离或高安全环境,考虑 Docker 自托管许可证。 你可以使用 Docker Compose 文件完全在你自己的基础设施上运行 Timestamp GIT。
- 定期下载审计 CSV 和 PDF 证书。 将它们存储在单独的归档位置,用于法律或合规目的。
- 监控仪表板热力图。 热力图中的空白告诉你当天没有提交被锚定——要么是因为没有提交,要么是因为出了问题。仪表板让这一点一目了然。
常见问题
自动 Git 提交时间戳是如何工作的?
Timestamp GIT 使用 GitHub App 自动检测新提交。每晚,它收集提交哈希,构建 Merkle 树,并通过 OpenTimestamps 将根锚定到比特币区块链。证明凭证(.ots 文件)被推送回你的仓库,提供不可变的存在性证据。
我的源代码是否会暴露给 Timestamp GIT?
不会。在标准模式下,GitHub App 只读取提交哈希,不读取文件内容。在企业 ZK 模式下,你基础设施上的 GitHub Action 仅将哈希推送到 API,因此你的源代码永远不会离开你的环境。
如果我某天没有提交会怎样?
如果某天没有提交,则不会为该天生成时间戳。系统只锚定已发生提交的哈希。你现有的证明仍然有效,未来的提交将自动打上时间戳。
我可以在不依赖 Timestamp GIT 服务器的情况下验证时间戳吗?
可以。.ots 凭证文件可以使用标准 OpenTimestamps 工具针对比特币区块链进行独立验证。Timestamp GIT 还提供了一个基于浏览器的验证页面,在本地执行所有计算。
一劳永逸
自动 Git 提交时间戳将一项繁琐、容易出错的事务变成了一个后台进程。你只需安装一次 GitHub App,连接你的仓库,每次提交就会每晚自动锚定到比特币——无需手动命令,无需凭证管理,无需记忆。
Timestamp GIT 是使这一切成为可能的托管服务。它将 OpenTimestamps 的复杂性隐藏在一个简洁的 GitHub App 背后,将证明直接交付到你的仓库,并为你提供仪表板、徽章和 API 用于验证。准备好开始了吗?安装 GitHub App,连接一个仓库,让每晚的锚定开始运行。