Implementar el control de versiones sería una tarea sencilla si sólo trabajaras como desarrollador en solitario con un repositorio local. Sin embargo, este no es el caso de muchos proyectos profesionales. En su lugar, un equipo agrupará recursos en un repositorio remoto utilizando un alojamiento como GitHub. Por ello, es importante aprender a enviar a GitHub porque es algo que tendrás que hacer como parte de tu flujo de trabajo.

Este post te enseñará cómo enviar a GitHub utilizando la línea de comandos. Además, veremos aplicaciones dedicadas para facilitar el proceso. Al final del artículo, hablaremos de por qué deberías aprender a hacer solicitudes de extracción (pull requests) y cómo se relacionan con el envío de código. Primero, veamos cómo usar GitHub para tus proyectos.

Cómo Utilizará GitHub un Desarrollador o Programador

GitHub es una herramienta esencial para desarrolladores y programadores de todo el mundo por varias razones. Te permite almacenar tu código en una ubicación centralizada, lo que facilita el acceso y ofrece una mayor colaboración con otros desarrolladores.

El logotipo de GitHub, que muestra la palabra
El logotipo de GitHub.

También puedes hacer un seguimiento de los cambios realizados en tu código y volver a versiones anteriores si es necesario. Además, GitHub proporciona herramientas para ayudar a gestionar problemas y errores, y esto hace que sea más sencillo mantener tu código base.

La colaboración es una de las razones clave por las que puedes utilizar GitHub como tu sistema de control de versiones (VCS) remoto preferido. Te permite compartir código, realizar un seguimiento de los cambios y colaborar en los problemas sin mucho esfuerzo. Esto puede ayudar a la eficiencia y también puede conducir a una mejor calidad del código.

GitHub también te ofrece una forma sencilla de gestionar varias versiones de una base de código, realizar un seguimiento de los cambios y revertirlos si es necesario. Los grandes proyectos y los esfuerzos de colaboración de código abierto serán sólo dos formas en las que GitHub demostrará su valor.

Incluso los casos de uso sencillos pueden ser ideales. Por ejemplo, podrías almacenar código para tu proyecto de desarrollo web y enviar actualizaciones remotas cuando hagas cambios. Además, los proyectos de integración continua/despliegue continuo (CI/CD) se beneficiarán de la automatización en forma de Acciones de GitHub durante las fases de construcción.

Una parte de la página web de Acciones de GitHub, mostrando una caja gris con el diálogo,
Un ejemplo de cómo las Acciones de GitHub encajan en un flujo de trabajo.

En general, GitHub — y otros alojamientos VCS remotos como GitLab — proporciona una plataforma para la colaboración, el control de versiones y otros flujos de trabajo de desarrollo. Puede ayudar a agilizar el proceso de desarrollo y mejorar la calidad del código. Por eso, deberías aprender a enviar a GitHub, ya que este conocimiento te beneficiará casi todos los días.

Cómo Enviar a GitHub desde el Terminal (Línea de Comandos)

El resto de este artículo te mostrará cómo enviar a GitHub. Es un proceso sencillo de entender y ejecutar.

Sin embargo, debes asegurarte de configurar tu proyecto de antemano, de lo contrario, te encontrarás con errores. En la primera sección, veremos qué herramientas y conocimientos se necesitan y, a continuación, analizaremos en detalle el proceso en sí.

Qué Necesitas para Publicar en GitHub

Es importante que te asegures de configurar tu proyecto para que soporte el uso de un repositorio remoto y la integración del envío en tu flujo de trabajo. Para ello, en primer lugar, necesitas un repositorio Git, un «repositorio» en el que almacenar tu código. Considéralo una carpeta que contiene los archivos asociados a tu proyecto.

Todo el proceso de control de versiones comienza en un entorno local en tu ordenador. Más adelante te indicaremos los pasos exactos para hacerlo, pero es posible que ya tengas estos conocimientos (o sepas dónde acceder a ellos)

También necesitas una cuenta de GitHub. De hecho, también podrías utilizar otro host VCS online, como GitLab, BitBucket, Buddy, etc. Las instrucciones que te damos aquí se pueden aplicar, en su mayor parte, a otras plataformas. Sin embargo, comparar estos alojamientos está fuera del alcance del artículo.

Para enviar tu código a GitHub, puedes utilizar la línea de comandos o una interfaz gráfica de usuario (GUI). La mayor parte de nuestro artículo tratará sobre el flujo de trabajo de la línea de comandos, pero también hay una sección sobre el uso de una GUI, ya que algunas son populares. Sin embargo, ten en cuenta que cada GUI puede tener un proceso diferente para enviar a GitHub, lo que significa que debes ceñirte a una aplicación concreta para sacarle el máximo partido.

Por último, asegúrate de que tienes el acceso adecuado a tu repositorio. La documentación de GitHub es exhaustiva al respecto, y deberías buscar tokens de acceso HTTPS o acceso Secure Shell (SSH). ¡Sin esto, no podrás trabajar.!

1. Crear un Repositorio de GitHub

El primer paso es crear un nuevo repositorio online dentro de GitHub. Aunque puedes hacerlo desde la línea de comandos, es igual de sencillo hacerlo utilizando un navegador web.

Una vez que inicies sesión o te registres en GitHub, dirígete a la esquina superior derecha de la pantalla y busca un menú desplegable con el signo Más junto al avatar de tu perfil. Si lo abres, te mostrará unas cuantas opciones que incluyen Nuevo repositorio:

Parte de la interfaz de GitHub que muestra una lista de los últimos cambios en el repositorio de GitHub. En la parte superior hay un menú desplegable con varias opciones. La opción Nuevo repositorio está resaltada en azul.
Elige crear un nuevo repositorio en GitHub.

Una vez que hagas clic en esto, llegarás a la página Crear un Nuevo Repositorio. Esto te mostrará un montón de ajustes para ayudarte a configurar tu repositorio remoto:

La pantalla Crear un nuevo repositorio en GitHub. Hay una serie de opciones aquí, tales como nombrar un propietario, establecer un nombre de repositorio, hacer el repositorio privado o público, y opciones de inicialización. Hay opciones para los archivos readme y .gitignore, y la opción de elegir una licencia adecuada.
Crear un nuevo repositorio en GitHub.

Las opciones que configures aquí dependerán de las necesidades de tu proyecto. Sin embargo, si ya tienes un repositorio local para enviar a GitHub, te recomendamos que selecciones lo menos posible para mantener la paridad entre el local y el remoto.

Desde aquí, haz clic en el botón Crear repositorio, y GitHub configurará todo. En este punto, llegarás a la página de inicio del repositorio con instrucciones sobre cómo configurar un nuevo repositorio local que enlace con el remoto utilizando la línea de comandos. El camino que sigas dependerá de si aún no tienes un repositorio o de si quieres clonar el contenido de un proyecto existente.

Si ya has inicializado Git tu repositorio local ya contiene archivos, no necesitarás realizar nada del paso dos. En su lugar, puedes dirigirte directamente al tercer paso, donde veremos cómo enviar código a GitHub desde tu repositorio local.

2a. Clona tu Repositorio Git Remoto

Si aún no tienes un repositorio local, la versión de GitHub será la única. La mejor forma de sincronizar ambas ubicaciones es utilizar el comando git clone en tu ordenador. Sin embargo, necesitas la URL de tu repositorio.

Para obtenerla, dirígete al repositorio dentro de GitHub, y busca la opción desplegable verde Código encima de tu lista de archivos:

Parte de un repositorio en Github. La parte principal de la imagen muestra el menú desplegable verde Código, completo con la URL HTTPS para el propio repositorio, y las opciones para descargar un archivo ZIP del repositorio, y para abrirlo con GitHub Desktop.
Abrir el menú desplegable Código en GitHub.

Si no ves esto, es probable que sea porque aún no tienes un repositorio con archivos. Ten en cuenta que puedes copiar la URL del repositorio desde el cuadro azul de Configuración rápida de la parte superior de la pantalla. Simplemente cambia a HTTPS utilizando los botones, y copia la URL.

Una parte de la pantalla de GitHub que muestra el cuadro de configuración rápida en azul. Tiene un encabezado que dice,
Utilizando las opciones de Configuración rápida para copiar la dirección URL de un repositorio en GitHub.

Sin embargo, preferimos generar un archivo .gitignore, ya que será algo que necesitarás de todos modos. Puedes utilizar gitignore.io para buscar las herramientas que utilizas y, a partir de ahí, generar un archivo .gitignore completo para subirlo al repositorio:

El sitio web de GitIgnore de Toptal. Es blanco, con una barra de herramientas azul en la parte superior. En el centro, hay una barra de búsqueda con un botón verde de confirmación para buscar elementos y un título azul que dice
El sitio web gitignore.io.

En cualquier caso, una vez que puedas abrir el desplegable Code, te mostrará las URL de tu repositorio. Habrá opciones para HTTPS, Secure Shell (SSH,) y otras. Sin embargo, lo más sencillo es utilizar la URL HTTPS. Puedes hacer clic en el pequeño icono Copiar situado junto a la URL en cuestión para copiarla en tu portapapeles.

A continuación, vuelve a tu Terminal o aplicación de línea de comandos, y ejecuta lo siguiente:

git clone <full-github-url>

Una vez que ejecutes el comando, Git copiará el repositorio remoto a tu entorno local.

2b. Inicializar Git en la Carpeta Local de Tu Proyecto

Para situaciones en las que aún no tienes una versión local de tu repositorio remoto, necesitas inicializar una. La mayor parte del trabajo que hagas será local, enviando los cambios al servidor remoto a intervalos regulares. Estos son los pasos:

  • Primero, cd a la carpeta que quieras utilizar para tu proyecto.
  • A continuación, ejecuta el comando git init. Esto inicializará Git en la carpeta local de tu proyecto y creará un directorio .git oculto.
  • Añade tu archivo .gitignore al root de la carpeta local de tu proyecto, ya que no te conviene poner en marcha algunos cambios relacionados con archivos del sistema

Llegados a este punto, necesitas indexar tus archivos actuales. Hazlo de la forma típica utilizando git add, y luego confirmando los cambios:

git add .

git commit -m “Initial Commit”

git branch -M trunk

La última línea cambia tu rama principal por otra de tu elección si aún no has cambiado de master. Esta última es problemática, ya que tiene connotaciones negativas para la esclavitud, por lo que se recomienda cambiarla. Aquí hemos utilizado trunk, pero main también es aceptable. Si sabes que esta línea no es necesaria para ti, puedes omitirla.

Llegados a este punto, ¡ya estás preparado para aprender a enviar a GitHub!

3. Añade un Nuevo Origen Remoto y Envía tu Código a GitHub

Una vez que hayas creado un nuevo repositorio remoto en GitHub, tienes que añadir un nuevo «origen remoto» a tu repositorio local. Esto es esencialmente el enlace a tu repositorio remoto, para que tu repositorio local sepa dónde enviar los cambios.

Para ello, introduce el siguiente comando en tu terminal:

git remote add origin <github-url>

En un sentido técnico, el remoto que añadas puede tener cualquier nombre. Sin embargo, la mayoría lo llama «origin», ya que sólo utilizas un remoto añadido, y ofrece una claridad absoluta. En este punto, puedes enviar a GitHub utilizando lo siguiente:

git push -u origin trunk

Este comando enviará tu código al nuevo origen remoto — llamado «origin» — y establece la rama upstream en «trunk» También puedes enviar cualquier rama al repositorio remoto si lo necesitas.

Parte de una ventana de Terminal que muestra la salida de un comando git push. Muestra cómo el proceso enumera los archivos, los comprime y los escribe en GitHub. También muestra a qué URL van esos archivos, cualquier rama nueva que haya que configurar, y un resumen de la acción global realizada: el seguimiento de una rama remota desde el origen.
Ejecutando un comando git push en el Terminal.

Una vez completado el proceso, tienes que verificar que el envío ha sido un éxito. Hay un par de formas de hacerlo. Por ejemplo, puedes dirigirte al repositorio en GitHub y comprobar si los cambios están activos:

Página de inicio de un repositorio en GitHub. Muestra la ruta del repositorio, una selección de opciones de navegación para realizar diferentes tareas y una lista de cambios basada en una confirmación reciente. También hay información sobre el repositorio, como su licencia, descripción y calendario de publicación.
Comprobar el estado de un repositorio Git en GitHub.

Sin embargo, también puedes ejecutar git log desde la línea de comandos:

La parte superior de una ventana de Terminal que muestra la salida de un comando git log. El hash de la confirmación se muestra en amarillo, con la información de la rama en rojo. Hay información para el autor y la fecha de commit, junto con un mensaje de commit para cada uno.
Ejecutar un comando git log en el Terminal y ver la salida.

Este comando muestra todas los commits de tu repositorio, incluida la que acabas de enviar. Por lo tanto, si el commit está dentro del registro, el envío ha sido un éxito.

Cómo Enviar a GitHub Sin Errores

En algunos casos, puedes encontrarte con un error cuando intentas enviar código a GitHub:

Una ventana de Terminal que ha buscado ejecutar un comando git push, y ha encontrado un error. El título de este error dice,
Obteniendo un error de clave RSA después de ejecutar un git push.

Esto ocurre cuando ya tienes una conexión segura a GitHub a través de un proyecto antiguo pero utilizando una clave RSA antigua. Tenemos una guía sobre cómo solucionar este problema en general. Sin embargo, para solucionarlo específicamente para GitHub, puedes ejecutar lo siguiente:

ssh-keygen -R github.com

Esto actualizará tu archivo de «hosts conocidos» y, a continuación, mostrará un mensaje de confirmación:

Una esquina de una pantalla de Terminal que muestra los resultados de eliminar keygens antiguos para github.com de su archivo 'hosts conocidos'. El comando elimina el archivo, encuentra el nombre del host, actualiza el archivo y proporciona una ruta donde se guarda una copia del archivo original.
Eliminar una clave de host antigua utilizando el Terminal.

Desde aquí, ejecuta lo siguiente para añadir la nueva clave RSA a tu archivo de hosts conocidos:

curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts

De hecho, puede que aquí también veas un error relacionado con el paquete jq. Si éste es el caso, puedes ejecutar cualquiera de las siguientes opciones dependiendo de tu sistema operativo:

  • Windows: curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
  • Mac: brew install jq
  • Linux: apt-get update | apt-get -y install jq

Una vez instalado, vuelve a ejecutar el comando y espera a que se complete:

La parte superior de una ventana de Terminal que muestra el resultado de ejecutar un comando para crear una nueva clave RSA y añadirla al archivo de hosts conocidos. Muestra el comando completo, y un resumen de la transferencia de datos.
Crear una nueva clave RSA utilizando el Terminal.

Finalmente, puedes volver a ejecutar el comando git push y, esta vez, deberías ver que el proceso se completa. Si no es así, es probable que el problema se deba a que las claves SSH son incorrectas o incluso a que necesitas configurar conexiones seguras utilizando claves dedicadas. Tenemos una guía completa sobre cómo generar nuevas claves SSH para GitHub, y la documentación de GitHub aquí también es completa.

Utilizar una GUI para Enviar Tu Código a GitHub

Aunque el proceso de enviar código a GitHub es sencillo una vez que lo has configurado, hay un montón de pasos, advertencias y subprocesos a tener en cuenta. Una GUI puede simplificar el proceso.

Por ejemplo, tienes toda la funcionalidad de la línea de comandos pero utilizando una interfaz más agradable (con arrastrar y soltar en algunos casos.) Es más, a menudo es más fácil visualizar y gestionar los cambios a través de una GUI, especialmente si no estás familiarizado con las herramientas de línea de comandos.

Si sabes que nunca necesitarás utilizar tu aplicación GUI para acceder a otro alojamiento VCS remoto, GitHub Desktop podría ser perfecto.

La interfaz de escritorio de GitHub, que muestra un historial de commits a lo largo del lado izquierdo, y las diferencias de código dentro de un commit específico en la ventana principal. Hay varias líneas añadidas que se resaltan en verde.
La aplicación GitHub Desktop.

La aplicación te permite crear y gestionar repositorios, confirmar cambios y enviar esos cambios a GitHub con sólo unos clics. Funciona mediante la función de arrastrar y soltar y también tiene una herramienta de «diferencia visual» que simplifica la identificación de los cambios de código entre versiones:

Parte de la interfaz de escritorio de GitHub que muestra un único commit y sus cambios. Muestra la eliminación de espacios en blanco, resaltada en rojo, y la adición de líneas, resaltada en verde.
Visualización de diferencias en un commit utilizando GitHub Desktop.

Sourcetree es otra popular interfaz gráfica de Git que analizamos en nuestro resumen de herramientas de desarrollo web. Aunque el VCS preferido es BitBucket (por ser un producto de Atlassian), puedes utilizar la herramienta con GitHub. La herramienta de resolución de conflictos de fusión también es útil y es una de las características más destacadas.

GitKraken es posiblemente la aplicación con la interfaz gráfica más atractiva disponible y ofrece una versión gratuita razonable para repos locales y públicos. Es compatible con todos los principales alojamientos de VCS: GitHub, por supuesto, pero también GitLab y BitBucket, entre otros. Nos encanta su representación visual de tu repositorio, y la solución también ofrece una funcionalidad bien pensada para los equipos.

Utilizar GitHub Desktop para Enviar a GitHub

Aunque el proceso para cada aplicación será ligeramente diferente, GitHub Desktop es muy sencillo. Trabajas en una única pantalla que utiliza varias ventanas y paneles. Una vez que haces un cambio en un archivo (que puedes abrir en el editor de tu elección desde un menú contextual con el botón derecho), lo confirmas utilizando un pequeño widget en pantalla:

La interfaz de escritorio de GitHub que muestra un cambio en un archivo a la izquierda, y los cambios específicos en la ventana principal. Hay una línea eliminada que se resalta en rojo, y dos añadidas que se resaltan en verde. La esquina inferior izquierda muestra el cuadro de mensaje de confirmación. Está resaltado en púrpura, y le permite escribir el mensaje del commit y la descripción. Hay un botón azul
Confirmando un cambio en GitHub Desktop.

Este commit formará parte de la sección «Push Origin» de la barra de herramientas superior: Si no tienes ningún cambio que confirmar, también habrá una notificación para enviar tus commits al origen remoto:

La interfaz de escritorio de GitHub muestra que no hay cambios locales. Hay varias opciones en la ventana principal para enviar commits al repositorio remoto, abrir el repositorio en un editor, ver esos archivos en tu ordenador y ver la página del repositorio en la interfaz web de GitHub.
Enviar cambios al origen remoto dentro de GitHub Desktop.

Esta es una solución de un solo clic para enviar cambios a tu repositorio de GitHub. Todo el flujo de trabajo es rápido, indoloro y sencillo de ejecutar.

Utilizar el Alojamiento de Aplicaciones de Kinsta y GitHub

Si eres cliente de Kinsta, puedes traernos todas tus aplicaciones. Nuestro Alojamiento de Aplicaciones y Bases de Datos te permite desplegar casi cualquier aplicación utilizando varios lenguajes, como PHP, Node, Python, etc. Te conectas a GitHub sin necesidad de utilizar un montón de comandos Git.

Para empezar, inicia sesión en tu panel de control de Kinsta, y navega hasta la pantalla de Aplicaciones. La primera vez que accedas a ella parecerá que está vacía:

El panel de MyKinsta, mostrando la página de Aplicaciones. Hay un gráfico púrpura de embudos y tubos, y una pequeña sección que muestra un botón Añadir servicio en púrpura, y un botón Más información en blanco. También hay unas breves instrucciones sobre lo que significa añadir tu primer servicio.
La página de Aplicaciones MyKinsta dentro del Panel de Control.

Sin embargo, si haces clic en el botón Añadir servicio, te dará la opción de desplegar una aplicación o una base de datos. Para este ejemplo, elegiremos Aplicación:

Detalle del diálogo de creación de la página Aplicaciones. Muestra un botón morado Añadir servicio con un desplegable para crear una Aplicación o una Base de datos. Hay un botón blanco de Más información y una guía sobre qué esperar una vez creado un nuevo servicio.
Añadir un nuevo servicio utilizando el botón correspondiente dentro de la pantalla de Aplicaciones de Kinsta.

A continuación, Kinsta te pedirá que te conectes a GitHub para importar repos de la plataforma:

La página de Aplicaciones de MyKinsta muestra un diálogo emergente para integrarse con GitHub. Hay una breve descripción de lo que hace, y botones tanto para Cancelar la integración o Continuar con GitHub.
Eligiendo la integración con GitHub cuando añadas un nuevo servicio.

El asistente que viene a continuación te ayudará a configurar tu aplicación. Primero tienes que elegir un repositorio de GitHub, y luego seleccionar la rama por defecto:

El asistente Añadir aplicación, que muestra los cuatro pasos para configurar una aplicación e integrarla con GitHub. Hay varias opciones, como elegir un repositorio y una rama, añadir un nombre de aplicación, elegir una ubicación de centro de datos, etc. En la parte inferior hay un botón púrpura Continuar y un botón blanco Cancelar.
Configurar los detalles de la aplicación para tu despliegue dentro del asistente de MyKinsta Añadir aplicación.

También tienes que dar un nombre a tu aplicación dentro de MyKinsta y seleccionar un centro de datos. Una vez que hagas clic en Continuar, tendrás que ajustar la configuración del entorno de construcción:

La sección Entorno de construcción del asistente Añadir aplicación. Muestra un desplegable para seleccionar una de las tres opciones de máquina de construcción y, a continuación, una sección parcial para elegir un archivo Dockerfile para su despliegue.
Configurar las opciones del entorno de compilación dentro del asistente de despliegue de MyKinsta.

Aquí tienes un par de opciones:

  • Elegir una máquina de construcción de la lista.
  • Configurar una imagen contenedora, ya sea utilizando la automatización o desde una ruta específica propia.

Después de esto, tienes que configurar tus recursos y procesos. Nuestros Ejemplos de Inicio Rápido incluyen los procesos web relevantes que necesitas, pero también puedes configurar los tuyos propios. Ten en cuenta que puedes tener tantos procesos como te permita tu presupuesto:

La sección Recursos del asistente Añadir aplicación. Muestra opciones para establecer un nombre de proceso, seleccionar un tipo de proceso, añadir un comando de inicio, seleccionar un tamaño de pod y especificar un recuento de instancias. También hay un botón blanco Añadir nuevo proceso.
Especificando los recursos en la pantalla del Asistente para añadir aplicaciones.

Una vez que veas los costes mensuales de uso, podrás realizar el pago. En este punto, puedes utilizar el Alojamiento de Aplicaciones completo con integración de GitHub. Hay mucho más que descubrir sobre el Alojamiento de Aplicaciones y Bases de Datos, y nuestra documentación es completa y exhaustiva.

Resumen

GitHub es una herramienta esencial para desarrolladores y programadores. Proporciona un repositorio centralizado para almacenar, rastrear y colaborar en el código. Una vez que aprendas a enviar tu código a GitHub desde un repositorio local, podrás unirte a la colaboración.

Usando la línea de comandos, es sencillo enviar tu código a GitHub y sólo necesitarás algunos comandos una vez que lo hayas configurado todo. Sin embargo, es posible que desees considerar una aplicación GUI dedicada, como GitKraken o GitHub Desktop. Estas aplicaciones eliminan la línea de comandos de la ecuación y te permiten realizar casi todas las tareas que necesitas con Git desde una interfaz familiar.

Además, GitHub es excelente en combinación con el Alojamiento de Aplicaciones y Bases de Datos de primer nivel de Kinsta. Esto te permite conectar tu repositorio de GitHub a nuestra red de 25 centros de datos y dar soporte a multitud de frameworks diferentes. El precio basado en recursos también es competitivo y está al alcance de la mayoría

¿Tienes alguna pregunta sobre cómo enviar a GitHub? Pregunta en la sección de comentarios más abajo

Jeremy Holcombe Kinsta

Editor de Contenidos y Marketing en Kinsta, Desarrollador Web de WordPress y Redactor de Contenidos. Aparte de todo lo relacionado con WordPress, me gusta la playa, el golf y el cine. También tengo problemas con la gente alta ;).