hugo/content/en/variables/git.md
Bjørn Erik Pedersen 9aec42c545 Squashed 'docs/' changes from 686c7b6eb..7ef2dbce4
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
2023-09-24 11:54:45 +02:00

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.
variables and parameters
git
docs
parent weight
variables 70
70
/extras/gitinfo/

{{% 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

  1. The Hugo site must be in a Git-enabled directory.
  2. The Git executable must be installed and in your system PATH.
  3. The .GitInfo feature must be enabled in your Hugo project by passing --enableGitInfo flag on the command line or by setting enableGitInfo to true 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

  1. 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). ↩︎

  2. 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. ↩︎

  3. You can configure the GitLab Runner's clone depth as explained in the GitLab documentation; see also the Hugo documentation's example workflow file. ↩︎