Guía para Principiantes de Git

Imagen Destacada de la Guía de Git

Git es un programa maravilloso. Es una utilidad de control de versiones que te permite gestionar sin problemas el historial de ediciones de un archivo. Aunque esto puede parecer simple y poco impresionante, la fuerza de Git radica en el hecho de que puedes extender este historial a grupos enteros de archivos y directorios.

Esto significa que es posible usar Git para rastrear cada cambio en cada archivo para cada directorio. Esto es muy útil si estás realizando un proyecto donde deseas tener una instantánea continua de todo lo que estás haciendo.

Tabla de Contenidos

  • ¿Qué es Git?
  • Instalando Git
  • Usando Git para un Proyecto Local
  • Usando Git para Proyectos en Línea
  • Preguntas Frecuentes

También lee: Cómo Determinar si un Sitio Web es Legítimo y Seguro de Usar

¿Qué es Git?

En su núcleo, Git es un simple programa de seguimiento de historial. En eso, rastrea los cambios a través de diferentes versiones de un archivo. La forma en que funciona es que cada vez que cambias un archivo, Git creará un hash para esa versión específica del archivo.

A partir de ahí, luego compara y analiza estos hashes contra el “árbol Git” del repositorio. Hacerlo de esta manera permite que Git solo almacene la diferencia entre múltiples versiones de archivos.

Árbol Git de la Guía de Git

Por ejemplo, si estás escribiendo un script bajo Git y realizaste un par de cambios en él. Git solo almacenará el hash de los primeros dos cambios y hashará el archivo actual contra los primeros dos. De esa manera, Git puede reconstruir las versiones anteriores sin almacenar múltiples copias del mismo archivo.

Información de Diferencias de la Guía de Git

Este enfoque también te permite escalar fácilmente tus archivos y directorios a un proyecto más grande. Dado que Git almacena todos los datos históricos como hashes, solo necesita operar en tu máquina local. Como tal, puedes exportar fácilmente tu trabajo a otras personas e importar sus contribuciones sin necesidad de software de gestión externo.

Instalando Git

Git es un paquete muy común en sistemas operativos basados en Linux. Debido a eso, instalarlo es increíblemente fácil. En la mayoría de los casos, ya está preinstalado en tu sistema. Si estás usando Debian o Ubuntu, puedes usar apt para instalar Git:

sudo apt install git

Instalando Git de la Guía de Git

Para Fedora o RHEL, usa dnf:

sudo dnf install git-all

Mientras tanto, si estás usando Arch Linux, también puedes instalar Git usando pacman:

sudo pacman -S git

Usando Git para un Proyecto Local

Usar Git en tu máquina local es muy simple. Lo primero que necesitas hacer es crear un nuevo repositorio de Git. Su propósito principal es servir como un contenedor para todos los objetos de Git que agregarás para este proyecto.

En la carpeta que deseas rastrear, ejecuta los siguientes comandos:

cd my-project  
git init

Git Init de la Guía de Git

Una vez hecho esto, Git creará una carpeta “.git” en la raíz de tu directorio de proyecto. Esto servirá tanto como un marcador para el programa Git como una carpeta de almacenamiento para todos los objetos de Git para ese proyecto.

Agregando Archivos Existentes a tu Repositorio

Con un repositorio de Git en funcionamiento, lo siguiente que debes hacer es importar cualquier archivo existente a Git. Esto se debe a que Git no rastrea ningún archivo cuando primero creas un nuevo repositorio.

Para hacer eso, puedes ejecutar el siguiente comando en el directorio raíz de tu carpeta:

git add .

Este comando le dirá a Git que incluya todos los archivos y carpetas en el directorio actual. Luego puedes confirmar esto ejecutando el siguiente comando:

git diff --cached

Nuevo Git Ls de la Guía de Git

También lee: Cómo Limpiar la Caché de Git

Confirmando tu Primer Repositorio

Con tus archivos ahora en el repositorio, lo siguiente que necesitas hacer es escribir esos cambios en el sistema de archivos de Git. Esto asegura que etiquetará y hashará correctamente todos los nuevos archivos en tu carpeta. Para hacer esto, necesitarás “confirmar” el estado actual del repositorio.

Para hacer eso, puedes ejecutar el siguiente comando:

git commit -a

Esto le dirá a Git que escriba todo lo que tiene en su caché en el sistema de archivos virtual.

A partir de ahí, Git te pedirá una descripción sobre esta confirmación específica. Esto te permitirá proporcionar una breve explicación sobre lo que contiene, así como una forma de distinguir fácilmente esta confirmación de otras. En mi caso, dado que esta es mi primera confirmación, solo escribiré “Confirmación Inicial”.

Primera Confirmación de la Guía de Git

Con eso, ahora puedes verificar si Git reconoce todos los archivos en tu directorio ejecutando el siguiente comando:

git ls-files

Nuevo Git Ls de la Guía de Git

Si durante lo anterior, Git lanza un error diciendo que no puede reconocerte, tendrás que decirle quién eres. Hacer eso es tan simple como ingresar:

git config --global user.name "Tu_Usuario"  
git config --global user.email "[email protected]"

Operaciones Básicas de Archivos en Git

En su mayor parte, los comandos de UNIX funcionarán con Git. Esto significa que puedes usar ls, cp, mv y rm en todos los archivos y carpetas dentro de un repositorio de Git. Sin embargo, hay una serie de comandos específicos que puedes usar para manipular fácilmente los objetos de Git.

Por ejemplo, puedes usar el subcomando ls-tree para ver el contenido de un árbol de Git específico, así como el valor hash actual de cada archivo.

git ls-tree master

Nuevo Ls Tree Master de la Guía de Git

Otro comando que puedes usar es la versión de Git de mv. Esto te permite mover archivos a cualquier lugar dentro del repositorio y aún conservar su historial.

git mv ./hello.file ./welcome.file

Esto puede ser útil si deseas renombrar un archivo en control de versiones, pero también quieres tener la capacidad de revertir ese cambio a través de Git.

Sabiendo eso, puedes ejecutar el siguiente comando para renombrar un archivo sin perder su historial.

Git Mv de la Guía de Git

Por último, Git también proporciona un subcomando para eliminar objetos. Similar a mv, puedes usar una versión de Git de rm para eliminar un archivo en tu repositorio actual. Hacerlo de esta manera te permite eliminar limpiamente el objeto actual para ese archivo en particular.

git rm ./old.file

Git Rm de la Guía de Git

Clonando un Repositorio Remoto

También es posible importar un repositorio remoto a tu máquina local. Esto es útil cuando necesitas copiar un proyecto diferente a través de la red. Git te proporciona la capacidad de clonar un repositorio ya existente.

La forma en que funciona la clonación es que Git copia completamente el árbol de un proyecto remoto. Esto le permite recrear todo el historial de un repositorio tal como existe en ese momento específico en el tiempo.

git clone https://github.com/git/git.git

Clonando Repo de la Guía de Git

También es posible clonar repositorios que solo existen en una red local. Esto es útil si estás colaborando con otras personas a través de LAN. Además, el proceso de clonación de un proyecto en una red local es exactamente el mismo:

git clone 192.168.1.100:/home/bob/awesome-project

También lee: Cómo Usar Alias de Git para Hacer Git Más Eficiente

Usando Git para Proyectos en Línea

Con eso, otra forma de colaborar con otras personas es a través de hospedaje de terceros. En esto, estás usando un servicio remoto como Github para alojar tu proyecto a través de Internet. Esto puede ser increíblemente útil si necesitas una forma rápida y fácil de distribuir tu trabajo a una gran audiencia.

Sitio Web de Github de la Guía de Git

No solo eso, un servicio como Github también agiliza el proceso de crear y mantener un repositorio. Como tal, es un servicio poderoso si tienes la intención de realizar proyectos colaborativos con otras personas a través de redes remotas.

Creando tu Primer Repositorio en Línea

Sabiendo eso, comenzar un repositorio a través de Github es increíblemente fácil. Una vez que hayas iniciado sesión en tu cuenta, el sitio te redirigirá a tu página de inicio personal.

Esta página mostrará las últimas actualizaciones sobre los proyectos que estás siguiendo actualmente. Eso incluye un breve historial de todas tus contribuciones a otros proyectos.

Página de Inicio de Github de la Guía de Git

Desde aquí, necesitas hacer clic en el signo “+” al lado de tu foto de perfil. Esto abrirá un pequeño menú desplegable donde puedes elegir una serie de acciones para tu cuenta. Luego, debes hacer clic en el enlace “Nuevo Repositorio” de ese menú.

Nuevo Repo de Github de la Guía de Git

Aquí es donde puedes especificar los detalles para el proyecto que deseas hacer en línea. Desde allí, necesitas establecer una serie de opciones para afinar tu proyecto.

Página de Nuevo Repo de la Guía de Git

Primero, necesitas proporcionar un nombre de repositorio para tu proyecto. Este servirá como un nombre donde otras personas pueden buscar cuando busquen tu repositorio.

A continuación, necesitas establecer la configuración de privacidad para tu proyecto. Puedes elegir entre Público y Privado. Un repositorio público permite que otras personas busquen tu proyecto en línea, mientras que uno privado te da la capacidad de compartirlo solo con algunas personas.

Por último, necesitas hacer clic en el botón “Crear Repositorio” para finalizar tu nuevo proyecto.

También lee: Cómo Eliminar una Rama de Git Local y Remota

Vinculando Github a tu Máquina Local

Con eso, lo siguiente que necesitas hacer es vincular tu máquina local a tu cuenta de Github. Para hacer esto, necesitas hacer dos cosas:

  • Primero, necesitas crear una clave SSH para tu máquina. Esta es una clave criptográfica corta que puedes generar localmente en tu computadora.
  • Por último, necesitas decirle a Github tu clave SSH actual. Esto permite que tu máquina tenga una identidad fija en Github. A su vez, utiliza esta identidad para verificarte cada vez que actualizas tu repositorio.

Creando tu Clave SSH

Si estás usando Debian o Ubuntu, puedes instalar SSH usando apt:

sudo apt install ssh

Instalando Ssh de la Guía de Git

A partir de ahí, puedes ejecutar el programa ssh-keygen para crear la clave ssh:

ssh-keygen -t ed25519 -C "[email protected]"  
ssh-add /home/$USER/.ssh/id_ed25519

Vinculando tu Clave SSH

Regresa a tu Panel de Control de Github, haz clic en tu Foto de Perfil y luego en Configuración.

Configuración de Cuenta de Github de la Guía de Git

Esto abrirá la configuración general para tu cuenta de Github. Desde aquí, necesitas hacer clic en el enlace “Claves SSH y GPG” en la sección “Acceso” en la barra lateral izquierda de la página.

Clave SSH de Cuenta de Github de la Guía de Git

Haz clic en el botón “Nueva Clave SSH” al lado del encabezado “Claves SSH”. Esto cargará la página de configuración de la clave donde puedes copiar el contenido de tu nueva clave SSH.

Página Nueva Clave SSH de la Guía de Git

Abre tu archivo de clave (en mi caso, el archivo de clave id_ed25519.pub en el directorio “~/.ssh”) en un editor de texto. Copia el contenido y pégalo en Github.

Subiendo Confirmaciones Locales en Línea

El último paso es que subas el contenido de tu proyecto local en línea.

En tu máquina local, ve a la carpeta de Git y ejecuta el comando:

git remote add origin [email protected]:ramcesred/my-project.git

Agregar Nuevo Origen Remoto de la Guía de Git

Desde aquí, necesitas asegurarte de que tu proyecto local esté actualmente en su rama principal. Esto es para que Git copie la versión adecuada de tu proyecto. Con eso, puedes asegurarte ejecutando el siguiente comando:

git branch -M main

Por último, sube el estado actual del proyecto en línea:

git push -u origin main

Subir Repositorio Local en Línea de la Guía de Git

¡Felicidades! Ahora tienes una configuración básica de trabajo para proyectos de Git. No solo eso, también tienes una idea básica de cómo funciona Git y cómo puedes hacerlo funcionar para ti.

También lee: Cómo Instalar Git y Git Bash en Windows

Preguntas Frecuentes

¿Es posible obtener los cambios que otras personas han hecho en mi proyecto Git en línea?

¡Sí! Es posible copiar los cambios que otras personas han hecho en tu repositorio en línea. Puedes hacer esto tirando de tu origen remoto.

Puedes fácilmente obtener cualquier actualización ejecutando el siguiente comando: git pull origin main

¿Cuáles son algunos de los problemas que debo tener en cuenta al usar Git?

Uno de los mayores problemas de usar Git es que ocupa mucho espacio al almacenar archivos binarios. Eso incluye cualquier archivo que no esté codificado en texto plano, como imágenes, formatos de documentos de oficina y programas compilados.

Esto se debe principalmente a que los algoritmos de compresión y hash que Git utiliza para almacenar objetos favorecen en gran medida los archivos de texto plano. Es posible incluir binarios bajo control de versiones, sin embargo, es una buena práctica evitar usarlos con Git.

¿Es posible no incluir archivos en un árbol de Git?

¡Sí! Puedes excluir fácilmente archivos de una confirmación. Puedes usar un archivo “.gitignore” para decirle a Git que no deseas incluir ciertos archivos.

Este es un archivo de texto oculto que creas en la carpeta raíz de tu repositorio. En este, incluyes las rutas relativas de archivos y directorios que deseas que Git ignore.

Crédito de la imagen: Unsplash