Unclear The contents of the shared arguments and environment are not known, so it is unclear whether this changes how these commands treat your repository's own git settings.
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.
The contents of the shared arguments and environment are not known, so it is unclear whether this changes how these commands treat your…