Skip to content

GitHub Template Features

What copies when someone clicks “Use this template” — and what doesn’t.

This reference covers every category of GitHub repository configuration, whether it transfers to new repositories created from templates, and workarounds for items that don’t copy.

Source: Creating a repository from a template · Creating a template repository


ItemCopies?Configuration FileDocs
All files and foldersYesN/ACreating a repository from a template
Hidden files (.gitignore, .github/, etc.)YesN/ACreating a template repository
Default branchYesN/ACreating a template repository
All branchesOptionalUser selects “Include all branches” during creationCreating a repository from a template
Git commit historyNoN/A — starts with single commitCreating a repository from a template
Git LFS filesNoN/A — template restrictionCreating a template repository

ItemCopies?Configuration FileDocs
Branch protection rulesNoN/A — UI/API onlyManaging a branch protection rule
Repository rulesetsNoCan export/import as JSONManaging rulesets for a repository
Organization-level rulesetsN/AApply automatically to all org reposManaging rulesets for repositories in your organization

Note: There is no native .github/settings.yml in GitHub. That is a third-party tool (Probot Settings App).


ItemCopies?Configuration FileDocs
Issue templatesYes.github/ISSUE_TEMPLATE/*.md or .ymlConfiguring issue templates
Issue forms configYes.github/ISSUE_TEMPLATE/config.ymlSyntax for issue forms
PR templatesYes.github/PULL_REQUEST_TEMPLATE.mdCreating a PR template
Existing issuesNoN/A — data, not filesCreating a repository from a template
Existing pull requestsNoN/A — data, not filesCreating a repository from a template

ItemCopies?Configuration FileDocs
SECURITY.mdYesSECURITY.md, .github/SECURITY.md, or docs/SECURITY.mdAdding a security policy
Dependabot configYes.github/dependabot.ymlDependabot configuration options
Secret scanning configYes.github/secret_scanning.ymlEnabling secret scanning
Code scanning workflowsYes.github/workflows/quality-gates.ymlConfiguring code scanning
Security feature togglesNoUI/API settings onlyManaging security settings
Secret scanning enabledNoUI/API settings onlyEnabling secret scanning
Dependabot alerts enabledNoUI/API settings onlyAbout Dependabot security updates

Security configuration files copy. Security feature toggles (enabled/disabled) do not.


ItemCopies?Configuration FileDocs
CODE_OF_CONDUCT.mdYesRoot, .github/, or docs/Adding a code of conduct
CONTRIBUTING.mdYesRoot, .github/, or docs/Default community health files
SUPPORT.mdYesRoot, .github/, or docs/Default community health files
GOVERNANCE.mdYesRoot, .github/, or docs/Default community health files
FUNDING.ymlYes.github/FUNDING.ymlDisplaying a sponsor button
Org-level defaultsN/APublic .github repo in orgDefault community health files

ItemCopies?Configuration FileDocs
Dev container configYes.devcontainer/devcontainer.jsonIntroduction to dev containers
Dev container directoryYes.devcontainer/Adding a dev container configuration
EditorConfigYes.editorconfigN/A (standard file)
VS Code settingsYes.vscode/settings.jsonN/A (standard directory)
VS Code extensionsYes.vscode/extensions.jsonN/A (standard directory)

ItemCopies?Configuration FileDocs
Dev container configYes.devcontainer/devcontainer.jsonTemplate repos for Codespaces
Lifecycle scriptsYesReferenced in devcontainer.jsonIntroduction to dev containers
Port forwarding configYesportsAttributes in devcontainer.jsonTemplate repos for Codespaces
Auto-open filesYescustomizations.codespaces.openFiles in devcontainer.jsonTemplate repos for Codespaces
Prebuild configurationNoRepository settingsAbout Codespaces prebuilds
Codespaces secretsNoRepository/Org settingsManaging development environment secrets

ItemCopies?Configuration FileDocs
Workflow filesYes.github/workflows/*.ymlWorkflow syntax
Workflow permissions (in file)Yespermissions: key in workflow filesWorkflow syntax
Composite action definitionsYesaction.ymlGitHub Actions
Actions secretsNoSettings > Secrets and variablesUsing secrets in GitHub Actions
Actions variablesNoSettings > Secrets and variablesUsing secrets in GitHub Actions
Environment configurationsNoSettings > EnvironmentsUsing secrets in GitHub Actions
Default workflow permissionsNoSettings > Actions > GeneralManaging Actions settings
OIDC trust policiesNoExternal provider configConfiguring OIDC in AWS

ItemCopies?Configuration FileDocs
Repository custom instructionsYes.github/copilot-instructions.mdCustom instructions for Copilot
Path-specific instructionsYes.github/instructions/*.instructions.mdCustom instructions for Copilot
Reusable promptsYes.github/prompts/*.prompt.mdCustom instructions for Copilot
Agent instructionsYesAGENTS.md (anywhere in repo)Custom instructions for Copilot
Claude Code instructionsYesCLAUDE.mdCustom instructions for Copilot
Copilot setup stepsYes.github/workflows/copilot-setup-steps.ymlCustomize agent environment
”Jumpstart with Copilot” promptNoUI feature during creation onlyCreating templates

ItemCopies?Configuration FileDocs
GitHub App installationsNoCan select during creationInstalling GitHub Apps
Webhook configurationsNoMust reconfigure manuallyCreating webhooks
Probot settingsYes (file).github/settings.ymlProbot settings

ItemCopies?Configuration FileDocs
Repository labelsNo.github/settings.yml (probot) or labels.json (label-sync)Managing labels
MilestonesNo.github/settings.yml (probot)About milestones
Default labelsNoNew repo gets GitHub’s built-in defaultsManaging labels

Workaround: Include a .github/settings.yml for Probot settings or a labels.json for github-label-sync.


ItemCopies?Configuration FileDocs
Pages settings (enabled/source)NoMust enable in Settings > PagesConfiguring publishing source
gh-pages branchOptionalIncluded if “Include all branches” selectedCreating a repository from a template
CNAME fileYes (file)CNAME in repo root or gh-pages branchManaging a custom domain
Custom domain settingsNoRepository settingsManaging a custom domain

ItemCopies?Configuration FileDocs
GitHub PackagesNoN/AIntroduction to GitHub Packages
ReleasesNoN/AAbout releases
Git tagsNoN/A — history doesn’t copyViewing releases and tags
Container imagesNoN/AWorking with Container registry
Release assets/binariesNoN/AAbout releases

ItemCategoryWorkaround
Git commit historyCore GitNone — templates start fresh
Git tagsCore GitRecreate manually or via automation
Git LFS filesCore GitNone — template restriction
Branch relationshipsCore GitBranches have unrelated histories
Stars / Watchers / ForksSocialNone — starts at zero
IssuesProject ManagementMigrate via GitHub API
Pull requestsProject ManagementMigrate via GitHub API
DiscussionsProject ManagementRecreate manually
Projects (classic & new)Project ManagementUse project templates separately
Wiki pagesDocumentationClone wiki git repo separately
ReleasesDistributionRecreate after establishing tags
GitHub PackagesDistributionRepublish
Container imagesDistributionRebuild and push
LabelsIssue Tracking.github/settings.yml + probot or labels.json + label-sync
MilestonesIssue Tracking.github/settings.yml + probot
Branch protection rulesSecurityOrg-level rulesets or export/import JSON
Repository rulesetsSecurityExport/import JSON
Security feature togglesSecurityEnable via API or org-level defaults
WebhooksIntegrationsReconfigure manually or via API
GitHub App installationsIntegrationsSelect during creation or install after
Actions secretsCI/CDReconfigure in Settings > Secrets
Actions variablesCI/CDReconfigure in Settings > Secrets
EnvironmentsCI/CDReconfigure in Settings > Environments
Deploy keysCI/CDRegenerate and reconfigure
OIDC trust policiesCI/CDReconfigure in cloud provider
Pages settingsPublishingEnable in Settings > Pages
Custom domain (Pages)PublishingCNAME file copies; settings don’t
Prebuild configurationCodespacesReconfigure in repo settings
Codespaces secretsCodespacesReconfigure in repo/org settings
Collaborators / TeamsPermissionsAdd manually or inherit from org
Default workflow permissionsSettingsReconfigure in Settings > Actions
Merge strategy settingsSettings.github/settings.yml + probot
Repository topicsMetadataAdd manually or via API
Social preview imageMetadataUpload in Settings
About descriptionMetadataSet manually
”Jumpstart” Copilot promptCopilotUI-only feature during creation

Files copy. Settings don’t.

If it lives in a file committed to the repository, it copies. If it’s a toggle, secret, or configuration stored in GitHub’s UI/API, it does not.