{"name":"GIT_ALLOW_PROTOCOL","slug":"git-allow-protocol","family":"env","title":"Environment variables","noun":"environment variable","description":"Git subprocesses now block graft files as an extra hardening measure","description_source":"entry","described_by":{"version":"2.1.235","anchor":"git-subprocesses-hardened-against-graft-files"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.309","builds":0,"mined_builds":150,"first_cited":{"version":"2.1.236","released_at":"2026-08-19 18:45:14","spans":6}},"aliases":[],"entries":[{"version":"2.1.309","anchor":"partial-clone-worktree-lazy-fetch-disabled-checkout-with-ex","heading":"Safer worktree checkouts for partial clones, behind a remote switch","line":"Behind a remote switch, worktree checkouts turn off git's on-demand fetching and fetch missing objects for partial clones up front","released_at":"2026-10-22 20:34:13","reason":"found in this entry's text"},{"version":"2.1.285","anchor":"worktree-git-fetches-use-a-shared-environment-helper","heading":"Git commands when creating a worktree now use stricter settings","line":"Creating a worktree now runs git with a hardened set of settings, including limits on network protocols and no interactive SSH prompts","released_at":"2026-09-29 17:32:09","reason":"found in this entry's text"},{"version":"2.1.285","anchor":"git-subprocess-env-git-allow-protocol-now-a-shared-value-p","heading":"Git's security settings changed for git commands Claude Code runs","line":"Git commands run by Claude Code now take their allowed network protocols from a shared value and set `GIT_NO_LAZY_FETCH` and `GIT_TERMINAL_PROMPT`","released_at":"2026-09-29 17:32:09","reason":"found in this entry's text"},{"version":"2.1.280","anchor":"self-hosted-runner-session-scoped-git-config-for-lifecycle","heading":"Self-hosted runner: session-scoped git config for lifecycle hooks","line":"Self-hosted runner sessions now get their own git config so lifecycle hooks use separate signing and protocol rules from the main checkout","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"},{"version":"2.1.275","anchor":"sandboxbyoc-git-helper-hard-disables-ssh-when-git-allow-pro","heading":"Sandbox\/BYOC git helper hard-disables SSH when GIT_ALLOW_PROTOCOL=none","line":"Git subprocesses now fully block SSH when GIT_ALLOW_PROTOCOL is set to 'none', closing a bypass","released_at":"2026-09-17 20:20:31","reason":"found in this entry's text"},{"version":"2.1.274","anchor":"git-subprocess-environment-hardened-with-stricter-protocoln","heading":"Git subprocess environment hardened with stricter protocol\/network controls","line":"Git subprocesses launched by Claude Code now run with stricter network and protocol restrictions","released_at":"2026-09-16 22:36:09","reason":"found in this entry's text"},{"version":"2.1.259","anchor":"new-env-vars-added-to-allowlistspassthrough","heading":"New env vars added to allowlists\/passthrough","line":"Several environment variables were added to passthrough allowlists, including GIT_ALLOW_PROTOCOL and CLAUDE_CODE_SKILL_PROPOSALS.","released_at":"2026-09-02 21:21:42","reason":"found in this entry's text"},{"version":"2.1.251","anchor":"git-commands-run-with-sanitized-ssh-and-protocol-environment","heading":"Git commands run with sanitized SSH and protocol environment","line":"Git runs with strict host-key checking and risky protocols disabled, no matter your environment.","released_at":"2026-08-28 15:34:26","reason":"named in this entry, found in this entry's text"},{"version":"2.1.248","anchor":"git-runs-with-a-pinned-environment-and-a-blocked-flag-list","heading":"Git runs with a pinned environment and a blocked-flag list","line":"Git now runs under fixed environments that block network protocols unless the operation needs them.","released_at":"2026-08-27 20:35:36","reason":"named in this entry, found in this entry's text"},{"version":"2.1.236","anchor":"git-commands-run-for-cloud-seeding-can-no-longer-reach-the-n","heading":"Git commands run for cloud seeding can no longer reach the network or prompt","line":"Git calls made while packaging your repo for the cloud cannot fetch or ask for passwords.","released_at":"2026-08-19 18:45:14","reason":"named in this entry, found in this entry's text"}],"entries_total":11,"docs":[{"source":"claude-code","path":"self-hosted-environments-configuration","title":"Customize sessions in self-hosted environments","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"GIT_ASKPASS","slug":"git-askpass","description":"Git commands no longer hang forever on a Windows credential manager popup."},{"name":"GIT_CONFIG","slug":"git-config","description":"Claude inspects a synced checkout's git config first and refuses to run git there if it looks unsafe."},{"name":"GIT_CONFIG_COUNT","slug":"git-config-count","description":"Stray git environment variables in your shell can no longer misdirect worktree operations."},{"name":"GIT_CONFIG_GLOBAL","slug":"git-config-global","description":"Git calls in the sync path now respect your custom global and system config paths."},{"name":"GIT_CONFIG_NOSYSTEM","slug":"git-config-nosystem","description":"Plugin eval helpers ignore machine-wide git settings so results cannot be skewed."},{"name":"GIT_CONFIG_SYSTEM","slug":"git-config-system","description":"Git calls in the sync path now respect your custom global and system config paths."},{"name":"GIT_DIR","slug":"git-dir","description":"Stray git environment variables in your shell can no longer misdirect worktree operations."},{"name":"GIT_INDEX_FILE","slug":"git-index-file","description":"Stray git environment variables in your shell can no longer misdirect worktree operations."},{"name":"GIT_PROXY_COMMAND","slug":"git-proxy-command","description":"Every git command Claude runs now has hooks, filesystem monitors and prompt helpers turned off."},{"name":"GIT_SSH_COMMAND","slug":"git-ssh-command","description":"Git runs with strict host-key checking and risky protocols disabled, no matter your environment."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/git-allow-protocol","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}