{"version":"2.1.247","anchor":"repo-git-hooks-are-opt-in-tag-pushes-opt-in-and-git-config-i","canonical_anchor":"repo-git-hooks-are-opt-in-tag-pushes-opt-in-and-git-config-i","heading":"Repo git hooks are opt-in, tag pushes opt in, and GIT_CONFIG is blocked","tier":"notice","area":"Git Safety","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247\/e\/repo-git-hooks-are-opt-in-tag-pushes-opt-in-and-git-config-i","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247","markdown":"### Repo git hooks are opt-in, tag pushes opt in, and `GIT_CONFIG` is blocked\n\nRepo git hooks stay suppressed by default, tag pushes excepted, and GIT_CONFIG is now cleared.\n\n**What**\n\nThe hook-suppressing config described above defaults to on, and only tag pushes ask for it to be lifted so repository push hooks still run. Diffs now pass `--ignore-submodules=none` and `--end-of-options`, sparse checkout is forced off for some operations, and `GIT_CONFIG` was added to the git environment variables Claude Code clears.\n\n**Details**\n\n- The argv builder signature defaults to hooks suppressed; the tag-push call site is the exception.\n- `--end-of-options` stops a path or ref that looks like a flag from being read as one.\n\n**Evidence**\n\n`allowRepoGitHooks`\n\n- Area: Git Safety\n- Names: `GIT_CONFIG`, `--ignore-submodules=none`, `--end-of-options`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}