Bash(git push:*) permission consistently denied despite being in allow list
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
- Add
Bash(git push:*)to global~/.claude/settings.jsonpermissions allow list - Add
Bash(git:*)to local~/.claude/settings.local.jsonpermissions allow list - Add
Bash(git push:*)to project.claude/settings.local.jsonpermissions allow list - Ask Claude Code to run
git push -u origin <branch> - 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:*)"]This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗