Preventing Forks on Public GitHub Repositories | Generated by AI

Home 2026.05

Question: In a GitHub public repository, how do you prevent or ban forking?

Answer:

You can’t fully prevent forking on a public GitHub repo — it’s a core GitHub feature and part of the open-source social contract. GitHub does not provide a native setting to disable forking on public repos.

However, there are a few real options depending on your actual goal:


Option 1: Make the repo private (only real technical block)

Private repos support fork restriction:

For public repos, this control doesn’t exist.


Option 2: Use a restrictive license

You can’t block the GitHub UI fork button, but you can legally restrict what people do with forks:

# In LICENSE file:
Copyright (c) 2026 Zhiwei Li. All rights reserved.
No part of this software may be reproduced or distributed without permission.

This doesn’t block the button — but it makes forks legally infringing.


Option 3: GitHub Enterprise / Organization setting (for org public repos)

If you’re on GitHub Enterprise, organizations have more control. But even then, public repo forking restriction is not a standard feature.


The Honest Answer

Goal Solution
Block the fork button entirely ❌ Not possible on public repos
Prevent legal reuse ✅ Restrictive license
Prevent forks within your org ✅ Make private + disable fork in org settings
Prevent forking completely ✅ Make the repo private

If your goal is to share code publicly but restrict usage (common for commercial open-core projects), the BSL or a custom proprietary license is the industry standard move — it’s what HashiCorp did with Terraform before OpenTofu forked it.


Back Donate