7ef2dbce4 Cleanup RSS templates page 0e23d5e1a Fix multilingual permalinks example b3c342b07 Update faq.md f73109ae2 Regen CLI docs ac6ee2027 Fix minor nitpicks (#2233) f24fcffe1 Mention the Giscus comments system (#2234) 418fa981e Remove reference to Ghost migration tool 94a76df29 Adjust table layout e263ad6b9 content: Fix typos fd1eb26b5 Update featured image in digital.gov showcase d3d946555 Correct directory description bbe1dff56 Use sentence case for heading acfa0be54 Add hosting provider fetch depth to GitInfo variables page d78c427e6 Fix typo 751517fea Fix spelling mistake cdd77aa9a Update content for v0.118.0 c77d09b1c Format netlify.toml d5a6c4f51 netlify: Hugo 0.118.1 8c717301a Revert "netlify: Hugo 0.118.0" a9b2ef5c2 netlify: Hugo 0.118.0 61959591c Merge commit '77b976dd92b4f66657d83d875aef0c617df492d9' 95f2029a1 docs: Regen docs helper fd57ba960 markup/goldmark: Add CJK extension 2bfb3bf4c docshelper: Improve template lookup order descriptions b0baa890e cache: Hide IsResourceDir from the exported config b4b071ea0 docs: Replace docs.json with docs.yaml git-subtree-dir: docs git-subtree-split: 7ef2dbce4ad728d32c218761c6cfbe2f58f8da16
3.1 KiB
title | linkTitle | description | categories | keywords | menu | weight | aliases | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Git variables | Git variables | Get the last Git revision information for every content file. |
|
|
|
70 |
|
{{% note %}} Hugo's Git integrations should be fairly performant but can increase your build time. This will depend on the size of your Git history. {{% /note %}}
.GitInfo
prerequisites
- The Hugo site must be in a Git-enabled directory.
- The Git executable must be installed and in your system
PATH
. - The
.GitInfo
feature must be enabled in your Hugo project by passing--enableGitInfo
flag on the command line or by settingenableGitInfo
totrue
in your site's configuration file.
The .GitInfo
object
The GitInfo
object contains the following fields:
- .AbbreviatedHash
- the abbreviated commit hash (e.g.,
866cbcc
) - .AuthorName
- the author's name, respecting
.mailmap
- .AuthorEmail
- the author's email address, respecting
.mailmap
- .AuthorDate
- the author date
- .Hash
- the commit hash (e.g.,
866cbccdab588b9908887ffd3b4f2667e94090c3
) - .Subject
- commit message subject (e.g.,
tpl: Add custom index function
)
.Lastmod
If the .GitInfo
feature is enabled, .Lastmod
(on Page
) is fetched from Git i.e. .GitInfo.AuthorDate
. This behavior can be changed by adding your own front matter configuration for dates.
Hosting considerations
On the site host, your repository must be "deep-cloned," so the returned .GitInfo
data will be accurate. Otherwise, your site may display only data from your latest commit. Where it's not possible to configure a host's cloning depth, you must handle this through CI/CD (e.g., a
GitHub Action or GitLab CI/CD). See the following table:
Hosting service | Clone depth | Configurable? |
---|---|---|
Cloudflare Pages | Shallow | ✔️ 1 |
DigitalOcean App Platform | Deep | ❌ |
GitHub Pages | Shallow | ✔️ 2 |
GitLab Pages | Shallow | ✔️ 3 |
Netlify | Deep | ❌ |
Render | Shallow | ❌ |
Vercel | Shallow | ❌ |
-
To configure a Cloudflare Pages site for deep cloning, preface the site's normal Hugo build command with
git fetch --unshallow &&
(e.g.,git fetch --unshallow && hugo
). ↩︎ -
You can configure the GitHub Action to do a deep clone by specifying
fetch-depth: 0
in the applicable "checkout" step of your workflow file, as shown in the Hugo documentation's example workflow file. ↩︎ -
You can configure the GitLab Runner's clone depth as explained in the GitLab documentation; see also the Hugo documentation's example workflow file. ↩︎