Unclear Whether Claude Code still sets LC_ALL for git commands somewhere else.
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-filesandgit check-ignorehelpers now pass a shared set of leading arguments and an explicit environment. - The
git ls-filescheck used by the Bash tool now builds a cleaned environment that setsGIT_LITERAL_PATHSPECS,GIT_TRACE2,GIT_TRACE2_PERFandGIT_TRACE2_EVENT. If the git program it finds fails a safety check, the file is treated as untracked. - A fixed environment that sets
LC_ALLandLANGUAGEtoC(which keeps git's output in plain English) now exists, and agit rev-parsecall uses a shared helper for it instead of settingLC_ALL=Cinline. - Several other git calls, including config reads, the shortstat call and one general git invocation, no longer force
LC_ALL=Con 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.
Names in the bundleLC_ALL
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Whether Claude Code still sets `LC_ALL` for git commands somewhere else.