Bash(git push:*) permission consistently denied despite being in allow list

Resolved 💬 3 comments Opened Mar 26, 2026 by ViktorLindgren95 Closed Mar 30, 2026

Description

git push commands are consistently denied by the permission system despite Bash(git push:*) and the broader Bash(git:*) being present in multiple settings files (global settings.json, settings.local.json, and project-level .claude/settings.local.json).

Reproduction

  1. Add Bash(git push:*) to global ~/.claude/settings.json permissions allow list
  2. Add Bash(git:*) to local ~/.claude/settings.local.json permissions allow list
  3. Add Bash(git push:*) to project .claude/settings.local.json permissions allow list
  4. Ask Claude Code to run git push -u origin <branch>
  5. Command is denied without showing a permission prompt

Expected behavior

The command should be auto-allowed since it matches Bash(git push:*) (and the broader Bash(git:*)) in the allow list.

Actual behavior

The command is denied with: Permission to use Bash with command git push -u origin <branch> has been denied.

Other git commands (e.g., git commit, git add, git diff, git status) work fine with their respective allow patterns.

Environment

  • macOS (Darwin 25.3.0)
  • Claude Code with model: opus[1m]
  • Permission mode: default
  • Multiple settings files all containing the allow rule

Settings excerpts

~/.claude/settings.json:

"allow": ["Bash(git push:*)"]

~/.claude/settings.local.json:

"allow": ["Bash(git:*)"]

project .claude/settings.local.json:

"allow": ["Bash(git push:*)", "Bash(git:*)"]

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗