Git信息
Syntax
PAGE.GitInfo
Returns
source.GitInfo
Page
对象上的 GitInfo
方法返回一个包含附加方法的对象。
先决条件
安装 Git ,创建一个仓库,并提交你的项目文件。
你还必须允许 Hugo 访问你的仓库。在你的站点配置中:
hugo.
enableGitInfo: true
enableGitInfo = true
{
"enableGitInfo": true
}
或者,在构建站点时使用命令行标志:
hugo --enableGitInfo
方法
简写哈希
(string
) 简写的提交哈希值。
{{ with .GitInfo }}
{{ .AbbreviatedHash }} → aab9ec0b3
{{ end }}
作者日期
(time.Time
) 作者日期。
{{ with .GitInfo }}
{{ .AuthorDate.Format "2006-01-02" }} → 2023-10-09
{{ end }}
作者邮箱
(string
) 作者的邮箱地址,遵守 gitmailmap 。
{{ with .GitInfo }}
{{ .AuthorEmail }} → [email protected]
{{ end }}
作者姓名
(string
) 作者的姓名,遵守 gitmailmap 。
{{ with .GitInfo }}
{{ .AuthorName }} → John Smith
{{ end }}
提交日期
(time.Time
) 提交日期。
{{ with .GitInfo }}
{{ .CommitDate.Format "2006-01-02" }} → 2023-10-09
{{ end }}
哈希值
(string
) 提交哈希值。
{{ with .GitInfo }}
{{ .Hash }} → aab9ec0b31ebac916a1468c4c9c305f2bebf78d4
{{ end }}
主题
(string
) 提交信息主题。
{{ with .GitInfo }}
{{ .Subject }} → Add tutorials
{{ end }}
正文
(string
) 提交信息正文。
{{ with .GitInfo }}
{{ .Body }} → - Two new pages added.
{{ end }}
最后修改日期
默认情况下,当 enableGitInfo
为 true
时, Page
对象上的 Lastmod
方法返回包含该文件的最后一次提交的 Git 作者日期。
你可以在你的 站点配置 中更改此行为。
托管注意事项
在 CI/CD 环境中托管你的站点时,克隆你的项目仓库的步骤必须执行深度克隆。如果克隆是浅层克隆,则给定文件的 Git 信息可能不准确——它可能反映的是最新的仓库提交,而不是最后修改该文件的提交。
一些提供商默认执行深度克隆,另一些提供商允许你配置克隆深度,还有一些提供商只执行浅层克隆。
托管服务 | 默认克隆深度 | 可配置 |
---|---|---|
AWS Amplify | 深度 | N/A |
Cloudflare Pages | 浅层 | 是 1(要将 Cloudflare Pages 站点配置为深度克隆,请在站点的正常 Hugo 构建命令前加上 git fetch --unshallow && (例如, git fetch --unshallow && hugo )。) |
DigitalOcean App Platform | 深度 | N/A |
GitHub Pages | 浅层 | 是 2(你可以在 GitHub Action 中配置深度克隆,方法是在你的工作流文件的适用“checkout”步骤中指定 fetch-depth: 0 ,如 Hugo 文档中的 示例工作流文件 所示。) |
GitLab Pages | 浅层 | 是 3(你可以配置 GitLab Runner 的克隆深度 如 GitLab 文档中所述 ;另请参见 Hugo 文档中的 示例工作流文件 。) |
Netlify | 深度 | N/A |
Render | 浅层 | 否 |
Vercel | 浅层 | 否 |