Back to Blog
Development

After Upgrading to macOS 27, Git Disappeared from GUI Apps

An old Intel /usr/local/bin/git symlink that had been hiding for years was enough to make every app that uses git fail.

8/8/2026
5 min read
Share:
After Upgrading to macOS 27, Git Disappeared from GUI Apps

After upgrading to macOS 27 Golden Gate yesterday, I got the same surprise from both Claude Code and VSCode.

Claude Code kept saying Git is required for local sessions. VSCode's Source Control panel acted as if git wasn't installed. But in Terminal, git status worked just fine.

That was the weird part. In the end, the problem wasn't that Git was missing. It was a "ghost git" hiding in plain sight.

The short version

macOS 27 drops Rosetta 2, so Intel (x86_64) binaries no longer run.

If your PATH still contains an old git from the Intel-era Homebrew days, GUI apps may find it first, try to launch it, and fail. Then they report that git is missing, even though a perfectly good system git is sitting later in the path.

Terminal works because .zshrc puts the newer Homebrew path ahead of the old one. GUI apps don't always inherit that setup, so they behave differently.

The quickest fix is usually to remove the old /usr/local/bin/git symlink.

How to check

Run this to list every git on your PATH:

echo $PATH | tr ':' '\n' | while read dir; do
  [ -e "$dir/git" ] && echo "$dir/git" && ls -la "$dir/git"
done

If you see something like this, you're probably looking at the culprit:

/usr/local/bin/git
lrwxr-xr-x  1 you  admin  14 Jun 28  2017 /usr/local/bin/git -> ../git/bin/git

That 2017 timestamp is the giveaway. It's usually an old Intel-era Homebrew symlink.

Try running it directly:

/usr/local/bin/git --version

If you get zsh: bad CPU type in executable, that's it.

Why Terminal was fine

Terminal and GUI apps don't always share the same environment.

  • Terminal reads your shell config and puts /opt/homebrew/bin or similar ahead of the old path
  • GUI apps are more likely to inherit the system PATH
  • So Terminal sees the good git, while GUI apps trip over the bad one

The annoying part is that nothing is actually missing. A broken old binary is just getting there first.

The fix

Delete the broken symlink:

rm /usr/local/bin/git

Don't worry about losing the system git. Apple's /usr/bin/git is still there, and GUI apps should fall back to it just fine.

If you still want Homebrew's git, just reinstall the ARM version afterward.

Clean up the rest of your Intel leftovers

If this happened once, there are probably other Intel-era tools lying around too.

You can scan your PATH like this:

echo $PATH | tr ':' '\n' | while read dir; do
  for f in "$dir"/*; do
    [ -f "$f" ] && [ -x "$f" ] && \
    file "$f" 2>/dev/null | grep -q "x86_64" && \
    echo "Intel: $f"
  done
done 2>/dev/null

I also found thefuck on my machine still built for Intel. It printed bad CPU type every time I opened Terminal. brew reinstall thefuck fixed it.

If it isn't git

The same logic applies to any other command:

  • check whether an old binary with the same name appears earlier in PATH
  • see whether it's Intel-only
  • remove it or replace it with an ARM build

When a GUI app says "it's not installed", that doesn't always mean the tool is really gone. Sometimes a ghost from the Intel era is just blocking the door.

#macOS#Git#Homebrew#Claude Code#VSCode#Troubleshooting