Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.309 ·

Git commands run with a cleaned-up environment

Claude Code's internal git calls now use a shared, cleaned environment, and the old forced LC_ALL=C setting is replaced

Group of 4 You'll notice Internal Changes
JSON All of v2.1.309
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
GitArea: what it touches
Internal ChangesKind: in v2.1.309,
ImprovementsSection of the release

What

Claude Code runs git in the background for things like checking whether a file is tracked. The environment it gives git (the settings passed to a program when it starts, called environment variables) has changed:

  • The git ls-files and git check-ignore helpers now pass a shared set of leading arguments and an explicit environment.
  • The git ls-files check used by the Bash tool now builds a cleaned environment that sets GIT_LITERAL_PATHSPECS, GIT_TRACE2, GIT_TRACE2_PERF and GIT_TRACE2_EVENT. If the git program it finds fails a safety check, the file is treated as untracked.
  • A fixed environment that sets LC_ALL and LANGUAGE to C (which keeps git's output in plain English) now exists, and a git rev-parse call uses a shared helper for it instead of setting LC_ALL=C inline.
  • Several other git calls, including config reads, the shortstat call and one general git invocation, no longer force LC_ALL=C on their own and use the shared environment helper instead.

Why

Git calls are less affected by settings in your own environment, such as tracing output or a different way of reading file patterns. Because the forced LC_ALL=C was dropped from some calls, git output there may follow your language settings.

See this entry in the whole of v2.1.309 →

Feedback