top of page
Search

Choosing the Right License for Your GitHub Repository

  • Writer: Shannon
    Shannon
  • Dec 15, 2025
  • 4 min read

Updated: Jan 13

Why You Should License Your GitHub Repository


When you publish code on GitHub without a license, you automatically retain full copyright. That means others can read your code, but they cannot legally copy it, modify it, or redistribute it.


In short:

  • Public does not automatically mean open source.

  • No license means no permission for reuse.


GitHub is explicit about this. For a repository to be considered open source, it must include a license that grants others the right to use, modify, and distribute the software. If your goal is collaboration, reuse, or learning, a license is not optional. It is required.


Official GitHub guidance:


Understanding Common Open Source Licenses


Choosing a license really comes down to one question:

How much freedom do you want to give others, and what obligations do you want to require in return?

Before diving into the details, here is a quick comparison for readers who want the short answer first.


Quick Comparison of Common Open Source Licenses


License

Can be used in proprietary software

Requires source code to stay open

Patent protection

Typical use cases

MIT

Yes

No

No

Libraries, samples, tooling, demos

Apache 2.0

Yes

No

Yes

Enterprise friendly open source projects

GPL v3

No

Yes

Yes

Strong open source enforcement

LGPL v3

Yes, when linked

Library changes only

Yes

Shared libraries

BSD 2 Clause

Yes

No

No

Academic and infrastructure projects

BSD 3 Clause

Yes

No

No

Projects needing attribution protection

Unlicense

Yes

No

No

Experiments and learning projects


If that table already answered your question, you can stop here and go add a license. If not, the sections below explain what each option actually means.


MIT License


What it allows

  • Anyone can use, copy, modify, merge, publish, distribute, and sell your code.

  • Code can be used in both open source and proprietary software.


What it requires

  • The original copyright notice and license text must be included.


What it does not do

  • It does not require derivative works to be open source.

  • It provides no warranty or liability protection beyond the disclaimer.


When to use it

  • Libraries, samples, tooling, and demos.

  • When you want maximum adoption with minimal friction.


Official license text:


GitHub Overview:


Apache License 2.0


What it allows

  • Everything the MIT license allows.

  • Explicit permission to use related patents.


What it requires

  • Preservation of copyright and license notices.

  • Disclosure of significant changes.


What it adds

  • Explicit patent protection.


When to use it

  • Enterprise-friendly open source projects.

  • Projects where patent rights could matter.


Official license text:


GitHub Overview:


GNU General Public License (GPL)


What it allows

  • Use, modification, and distribution of the code.


What it requires

  • Any derivative work must also be licensed under the GPL.

  • Source code must be made available when distributing binaries.


What it enforces

  • Strong copyleft, meaning openness is preserved downstream.


When to use it

  • When you want to ensure improvements remain open source.

  • Community-driven projects focused on software freedom.


Official license text:


GitHub Overview:


GNU Lesser General Public License (LGPL)


What it allows

  • Linking the library into proprietary software.

  • Modifying and redistributing the library itself.


What it requires

  • Changes to the library itself must remain open source.


When to use it

  • Shared libraries that you want widely adopted.

  • A middle ground between MIT and GPL.


Official license text:


GitHub Overview:


BSD Licenses (2 Clause and 3 Clause)


What they allow

  • Similar freedoms to MIT.

  • Use in proprietary and open source projects.


What they require

  • Retention of copyright notices.

  • The 3 Clause version prevents endorsement using the author’s name.


When to use them

  • Academic, research, or infrastructure projects.

  • Situations where attribution clarity matters.


Official license texts:


GitHub overview:


The Unlicense


What it allows

  • Nearly unrestricted use.

  • Treats the code as public domain.


What it requires

  • Almost nothing.


When to use it

  • Experiments, demos, and learning projects.

  • When you truly do not care how the code is reused.


Official license text:


GitHub Overview:


A Simple Decision Guide for Choosing a License


If licensing still feels fuzzy, this quick decision flow usually gets people to the right answer.


Do you want others to use your code in proprietary software?

  • No → Choose GPL.

  • Yes → Continue.


Do you care about patent protection?

  • Yes → Choose Apache License 2.0.

  • No → Continue.


Is this a library meant to be embedded in other software?

  • Yes → Choose LGPL.

  • No → Continue.


Do you want the simplest and most permissive option?

  • Yes → Choose MIT.

  • No, I want attribution controls → Choose BSD 3 Clause.


Do you truly not care how the code is used?

  • Yes → Choose the Unlicense.


Where to Put Your License


Licenses are typically stored in the root of the repository and named:


  • `LICENSE`

  • `LICENSE.txt`


GitHub automatically detects recognized licenses and displays them prominently on the repository page.


It is also a good idea to reference the license in your README:


```markdown

This project is licensed under the MIT License - see the LICENSE file for details.

```


How to Add a License on GitHub


Adding a license through GitHub is straightforward:

  1. Open your repository on GitHub.

  2. Select Add file, then Create new file.

  3. Name the file LICENSE.

  4. Choose a license template from GitHub’s selector.

  5. Commit the change.


Documentation:


Final Thoughts


Licensing is not a legal ceremony. It is about clarity on how and when to use code (especially code you've developed and want to reshare, like me!).


A license tells the world how you want your code to be used, shared, and extended. GitHub makes the mechanics easy, but the intent still comes from you. Spending a few minutes choosing the right license makes your project clearer, safer, and far more usable by others.


So, what are you waiting for? Go ahead and pick a license that fits your project!

Comments


© 2020 Shannon B. Eldridge-Kuehn

  • LinkedIn
  • Twitter
bottom of page