Este capítulo lo escribo con una advertencia por delante: no soy abogada y esto no es asesoría legal. Es lo que necesitas saber para no meter la pata con un cliente, que es distinto 👩⚖️
Y la pata más común es esta: "está en GitHub, es público, lo uso".
Público no es libre
Cuando alguien escribe algo, ese algo es suyo desde el momento en que lo escribe. No hace falta registrar nada. Publicarlo en internet lo hace visible, no gratis.
Por eso, si un repositorio no tiene licencia, la respuesta por defecto es "todos los derechos reservados". Los propios términos de GitHub dicen que subiendo algo público le das a los demás el derecho de verlo y de bifurcarlo dentro de GitHub, y nada más. Ni usarlo en tu trabajo, ni copiarlo dentro de un proyecto que cobras.
La licencia es justamente el permiso que el autor da por adelantado, para no tener que contestar correos uno por uno 📜
Las tres que vas a encontrar
| Licencia | Puedo usarlo en algo que cobro | Tengo que abrir mi código | La reconoces por |
|---|---|---|---|
| MIT | Sí | No | Es cortita, cabe en una pantalla |
| Apache 2.0 | Sí | No | Larga, habla de patentes |
| GPL v3 | Sí | Sí, si lo distribuyes | Habla de "copyleft" |
| Sin archivo | No | - | No hay LICENSE en la raíz |
MIT y Apache dicen básicamente "haz lo que quieras, no me demandes si se rompe, y deja mi nombre en el aviso". GPL dice "haz lo que quieras, pero si entregas algo construido encima de esto, ese algo también tiene que ser abierto".
Esa última fila es la que importa en el trabajo: si vas a entregarle a un cliente algo que lleva dentro una librería GPL, esa es una conversación que hay que tener antes y no después ⚠️
Mirar la licencia desde la terminal
Armamos un proyecto con licencia para verlo:
mkdir reporte-ventas cd reporte-ventas git init -q printf 'ciudad,monto\nLima,1200\nArequipa,890\n' > ventas.csv printf '# Reporte de ventas\n' > README.md git add . git commit -q -m "Primera version del reporte de ventas" ls test -f LICENSE && echo "tiene licencia" || echo "sin licencia, ojo"
README.md ventas.csv sin licencia, ojo
Ese test -f LICENSE es la revisión de cinco segundos que hago
antes de usar cualquier cosa ajena en un proyecto de cliente 🔎
Ponerle una a lo tuyo
En GitHub hay un asistente (Add file > Create new file, escribe
LICENSE y aparece un botón para elegir). Desde la terminal es un
archivo de texto y ya:
printf 'MIT License\n\nCopyright (c) 2026 Gera Flores\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction.\n' > LICENSE git add LICENSE git commit -q -m "Se agrega la licencia MIT" head -3 LICENSE git log --oneline
MIT License Copyright (c) 2026 Gera Flores 6d14e7e Se agrega la licencia MIT 3d1883c Primera version del reporte de ventas
El texto completo de MIT son unas veinte líneas y se copia tal cual desde opensource.org. Lo único que se cambia es el año y el nombre 📝
Cuando el archivo se llama de otra forma
git mv LICENSE LICENCIA.txt git commit -q -m "Se traduce el nombre del archivo de licencia" ls git log --oneline -1
LICENCIA.txt README.md ventas.csv 10b7e35 Se traduce el nombre del archivo de licencia
Funciona, pero no lo hagas. GitHub reconoce el archivo por el nombre
LICENSE y es lo que muestra en la barra lateral del proyecto. Con
otro nombre, tu licencia existe y nadie la ve.
git mv LICENCIA.txt LICENSE
git commit -q -m "Vuelve a llamarse LICENSE, que es lo que GitHub reconoce"
ls
LICENSE README.md ventas.csv
Qué hacer si el proyecto que quieres no tiene licencia
Preguntar. Se abre un issue de tres líneas, sin drama:
Hola! Me gustaría usar esto en un proyecto de trabajo. ¿Podrías agregarle una licencia para saber qué está permitido? Gracias por publicarlo 🙌
La mitad de las veces es un olvido y lo resuelven el mismo día. Y si nadie contesta en dos semanas, esa también es una respuesta 🤷♀️
La trampa
Encuentras en GitHub un script que hace exactamente el reporte de ventas que te pidió tu cliente. No tiene licencia, pero es público, así que lo usas.
$ ls README.md reporte.py requirements.txt $ ls LICENSE ls: cannot access 'LICENSE': No such file or directory
Qué está mal
Sin licencia no es "libre", es todos los derechos reservados ⚖️
Es al revés de lo que parece: publicar algo no lo regala. Por defecto la obra es de su autor, y que esté visible en internet no te da permiso para usarla, ni para copiarla dentro de un trabajo que cobras.
GitHub lo dice en sus propios términos: lo público se puede ver y se puede bifurcar dentro de GitHub, y nada más.
La salida no es dejar de usarlo, es preguntar: se abre un issue amable pidiendo que le pongan una licencia. Casi siempre es un olvido y se resuelve en un día.
Comprueba que se entendió
Comprueba que lo tienes
Encuentras un script público en GitHub, sin archivo LICENSE, que resuelve el reporte que te pidió un cliente. ¿Qué puedes hacer?
- Usarlo, es público
- Mirarlo y aprender de él, pero no usarlo sin preguntar
- Usarlo si lo cambio bastante
- Usarlo si menciono al autor
Ejercicios
1. Revisa si un proyecto tiene licencia
Crea el catálogo de bodegas sin licencia y hazle la revisión de cinco segundos.
cd .. mkdir catalogo-bodegas cd catalogo-bodegas git init -q printf 'bodega,ciudad\nBodega Inti,Cusco\n' > bodegas.csv git add bodegas.csv git commit -q -m "Catalogo de bodegas de Cusco" ls test -f LICENSE && echo "tiene licencia" || echo "sin licencia"
bodegas.csv sin licencia
Sin licencia. Si fuera de otra persona, tocaría preguntar antes de usarlo.
2. Ponle MIT
Agrega la licencia y guárdala en su propio commit.
printf 'MIT License\n\nCopyright (c) 2026 Gera Flores\n' > LICENSE git add LICENSE git commit -q -m "Se agrega la licencia MIT" git log --oneline cat LICENSE
061ce9d Se agrega la licencia MIT ffd8667 Catalogo de bodegas de Cusco MIT License Copyright (c) 2026 Gera Flores
Un commit aparte para la licencia, porque es una decisión y no un detalle.
3. Comprueba el año y el nombre
Lo único que se personaliza de MIT es la línea del copyright.
grep Copyright LICENSE
Copyright (c) 2026 Gera Flores
Si copias una licencia y te olvidas de cambiar esa línea, estás declarando que la obra es de otra persona 🙈
4. Mira cuándo se agregó
La historia de un solo archivo, que ya viste en el capítulo 6.
git log --oneline -- LICENSE
061ce9d Se agrega la licencia MIT
Útil en proyectos ajenos: te dice si la licencia estuvo desde el principio o si se agregó después, que cambia qué cubre.
5. Prueba a renombrarla
Cámbiale el nombre y vuelve a dejarla como estaba.
git mv LICENSE licencia.md git commit -q -m "Se prueba otro nombre para la licencia" ls git mv licencia.md LICENSE git commit -q -m "Vuelve a LICENSE, que es el nombre que GitHub reconoce" ls
bodegas.csv licencia.md LICENSE bodegas.csv
El nombre exacto importa porque GitHub lo busca literal.
6. Busca licencias en todo un proyecto
Un proyecto puede traer licencias de terceros dentro. Búscalas todas.
mkdir -p vendor/libreria-ajena printf 'Apache License 2.0\n' > vendor/libreria-ajena/LICENSE git add vendor git commit -q -m "Entra una libreria de terceros con su licencia" find . -name "LICENSE*" -not -path "./.git/*"
./LICENSE ./vendor/libreria-ajena/LICENSE
Dos licencias en un mismo proyecto es normal. Lo que no es normal es no saber que están 🔍
7. Intenta borrar una licencia que no existe
Pídele a Git que quite un archivo que el proyecto no tiene.
git rm LICENCIA-VIEJA.txt
fatal: pathspec 'LICENCIA-VIEJA.txt' did not match any files
Git no borra a ciegas ni inventa: si el archivo no está en la historia, te lo dice y no toca nada 🛡️
Lo que te llevas
Sin LICENSE, todos los derechos reservados. Para lo tuyo, MIT; para lo ajeno, mira el archivo antes de usarlo.
Practica este capítulo 📓
Todo el código de arriba en un cuaderno que corre de principio a fin, y los ejercicios con una celda vacía para que los hagas tú. Se abre en Google Colab y no hay que instalar nada.