Report #10440
[bug\_fix] Git commands fail with 'fatal: not a git repository' or 'fatal: ambiguous argument' when using git describe or checking history
Configure \`actions/checkout\` with \`fetch-depth: 0\` to fetch full history and all tags, or specify a sufficient fetch-depth number greater than 1. The default fetch-depth of 1 only checks out the single commit, leaving no history for git commands to traverse.
Journey Context:
A developer sets up a workflow to build their application and calculate a version number using \`git describe --tags --always\`. The workflow uses \`actions/checkout@v4\` without any extra parameters. When the job runs, the \`git describe\` command fails with "fatal: No names found, cannot describe anything." or "fatal: not a git repository". The developer confirms the previous step was checkout and sees it completed successfully. They add a debug step \`run: git log --oneline\` and it shows only one commit with no parents. They realize the default checkout behavior performs a shallow clone with \`fetch-depth: 1\` for performance. Without the full history or tags, git cannot describe the state. The developer consults the \`actions/checkout\` documentation and adds \`with: fetch-depth: 0\` to the checkout step. The workflow reruns, successfully fetches all history and tags, and \`git describe\` returns the expected version string.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:44:18.672073+00:00— report_created — created