Una guía rápida para subir a GitHub un proyecto que ya tienes en tu equipo.
Crea un nuevo repositorio en GitHub.
Indica:
- nombre del repositorio;
- descripción, si quieres;
- si será público o privado.
Para este procedimiento es más sencillo crear el repositorio vacío:
- no añadas README;
- no añadas
.gitignore; - no añadas licencia.
Así evitamos que el repositorio remoto tenga commits que todavía no existen en nuestro proyecto local.
Sitúate en la carpeta raíz de tu proyecto.
Por ejemplo:
cd mi-proyectogit init -b mainEsto crea un repositorio Git local y utiliza main como rama principal.
git add .Puedes comprobar qué se va a incluir con:
git statusgit commit -m "Initial commit"Copia la URL HTTPS del repositorio que acabas de crear.
Tendrá una forma similar a:
https://github.com/USUARIO/REPOSITORIO.git
Añádela como remoto:
git remote add origin https://github.com/USUARIO/REPOSITORIO.gitPuedes comprobarlo con:
git remote -vgit push -u origin mainLa opción -u deja configurada la relación entre tu rama local main y la rama remota.
A partir de ese momento, normalmente podrás utilizar simplemente:
git pushCuando hagas nuevos cambios en tu proyecto:
git add .
git commit -m "Descripción del cambio"
git pushNo necesitas volver a ejecutar git init ni volver a crear origin.
Git no está instalado o no está disponible en el PATH.
Comprueba primero:
git --versionSi el comando no existe, instala Git y vuelve a abrir la terminal.
En Windows puedes instalar Git for Windows desde:
https://git-scm.com/
Git necesita saber qué nombre y correo debe asociar a tus commits.
Configúralos:
git config --global user.name "Tu nombre"
git config --global user.email "tu-email@example.com"Puedes comprobar la configuración con:
git config --global user.name
git config --global user.emailSi utilizas GitHub y no quieres publicar tu dirección de correo real en los commits, puedes utilizar la dirección noreply que GitHub proporciona en la configuración de tu cuenta.
Tu repositorio ya tiene un remoto llamado origin.
Comprueba cuál es:
git remote -vSi la URL es correcta, no necesitas hacer nada.
Si necesitas cambiarla:
git remote set-url origin https://github.com/USUARIO/REPOSITORIO.gitDespués comprueba de nuevo:
git remote -vComprueba primero en qué rama estás:
git branch --show-currentSi tu rama local se llama master y quieres renombrarla a main:
git branch -M mainDespués:
git push -u origin mainComprueba la URL configurada:
git remote -vDebería tener una forma similar a:
https://github.com/USUARIO/REPOSITORIO.git
Un error frecuente es copiar la URL de una página o de un archivo en vez de la URL del repositorio.
Por ejemplo, una URL que contiene algo como:
/blob/main/...
no es la URL que debes utilizar como remoto.
También comprueba:
- que el repositorio existe;
- que el nombre de usuario es correcto;
- que tienes permisos para acceder a él;
- que estás autenticado con la cuenta adecuada.
Puede ocurrir que Git tenga almacenadas credenciales de otra cuenta.
Comprueba primero que el repositorio y la URL son correctos:
git remote -vSi utilizas HTTPS, Git normalmente gestiona las credenciales mediante Git Credential Manager.
En Windows, si tienes guardada una cuenta incorrecta, puedes revisar las credenciales almacenadas en el Administrador de credenciales de Windows y volver a autenticarte con la cuenta correcta.
GitHub ya no permite utilizar la contraseña normal de tu cuenta para autenticar operaciones Git mediante HTTPS.
Puedes utilizar, entre otras opciones:
- Git Credential Manager;
- GitHub CLI;
- un Personal Access Token;
- SSH.
En Windows, Git for Windows suele incluir Git Credential Manager y permite autenticarte mediante el navegador.
No es necesariamente un error.
Significa que Git no detecta cambios pendientes de guardar en un commit.
Compruébalo con:
git statusSi acabas de modificar archivos y Git no los detecta, revisa también tu archivo .gitignore.
Normalmente aparece cuando intentas hacer push antes de tener algún commit o cuando la rama no se llama main.
Comprueba:
git status
git branch --show-currentSi todavía no has creado ningún commit:
git add .
git commit -m "Initial commit"Después:
git push -u origin mainEsto suele significar que el repositorio remoto contiene cambios que tu copia local todavía no tiene.
Puede ocurrir, por ejemplo, si al crear el repositorio en GitHub añadiste un README, una licencia o algún otro archivo.
No utilices automáticamente:
git push -fUn push forzado puede sobrescribir el historial remoto.
Primero revisa el estado:
git status
git remote -v
git branch --show-currentY recupera los cambios del remoto:
git pull origin mainSi Git detecta conflictos tendrás que resolverlos antes de continuar.
Después:
git pushSi estás empezando desde cero, normalmente es más sencillo crear inicialmente el repositorio remoto vacío, como se explica al principio de esta guía.
Comprueba primero:
git status
git branch --show-current
git remote -vDespués revisa qué rama estás viendo en GitHub.
Por ejemplo, si has subido:
git push -u origin mainpero estás visualizando otra rama, parecerá que tus archivos no están allí.
También puedes comprobar tus últimos commits:
git log --oneline -5No vuelvas a ejecutar todo el procedimiento.
Simplemente:
git add .
git commit -m "Descripción del cambio"
git pushCréala:
git switch -c nombre-ramaHaz tus cambios y crea el commit:
git add .
git commit -m "Descripción del cambio"Sube la nueva rama:
git push -u origin nombre-ramaA partir de entonces:
git pushSi algo no funciona y necesitas pedir ayuda, estos tres comandos suelen aportar bastante información:
git status
git branch --show-current
git remote -vTambién puede ser útil conocer la versión instalada:
git --versionCon esa información es mucho más fácil entender qué está ocurriendo que probar comandos al azar.
Nota: esta guía se actualizó en 2026 incorporando problemas y dudas recurrentes aparecidos en los comentarios a lo largo de los años.

Buenos dias,
A ver si puedo explicarme bien para que me ayudeis, estoy intentando resolver que 3 usuarios diferentes interactuen con mi repositorio en mi github personal, para realizar una prueba, estoy utilizando maquinas virtuales para que sea menos lioso ya que en mi repositorio local no logro hacerlo.
Lo que pretendo es que interactuen las maquinas virtuales de linux haciendo push y las otras 3 cambios posteriores sobre otras ramas creadas para el desarrollo, pero cuando me identifico en la primer con un user.name determinado, en mi github sale otro nombre completamente diferente, he puesto el comando git config --global credential.helper cache para que lo guarde pero me lo pasa a mi github como otro usuario que yo no he puesto: cohetero13.
Alguien me puede ayudar por favor?
Gracias y saludos