Git es un programa maravilloso. Es una utilidad de control de versiones que le permite administrar sin problemas el historial de edición de un archivo. Si bien esto puede parecer simple y poco impresionante, la fortaleza de Git radica en el hecho de que puede extender este historial a grupos completos 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á realizando un proyecto en el que desea tener una instantánea continua de todo lo que está haciendo.
¿Qué es Git?
En esencia, Git es un programa simple de seguimiento de historial. En eso, rastrea los cambios en diferentes versiones de un archivo. La forma en que funciona es que cada vez que cambia un archivo, Git creará un hash para esa versión de archivo específica.
A partir de ahí, compara y analiza estos hashes con el «árbol Git» del repositorio. Hacerlo de esta manera le permite a Git almacenar solo la diferencia entre múltiples versiones de archivos.
Por ejemplo, si está escribiendo un script en Git y le hizo un par de cambios. Git solo almacenará el hash de los dos primeros cambios y comparará el archivo actual con los dos primeros. De esa forma, Git puede reconstruir las versiones anteriores sin almacenar varias copias del mismo archivo.
Este enfoque también le permite escalar fácilmente sus archivos y directorios a un proyecto más grande. Dado que Git almacena todos los datos históricos como hashes, solo necesita operar en su máquina local. Como tal, puede exportar fácilmente su trabajo a otras personas e importar sus contribuciones sin necesidad de un software de gestión externo.
Instalando Git
Git es un paquete muy común en los sistemas operativos basados en Linux. Por eso, instalarlo es increíblemente fácil. En la mayoría de los casos, ya está preinstalado en su sistema. Si está usando Debian o Ubuntu, puede usar apt para instalar Git:
Para Fedora o RHEL, use dnf:
Mientras tanto, si está usando Arch Linux, también puede instalar Git usando pacman:
Uso de Git para un proyecto local
Usar Git en tu máquina local es muy simple. Lo primero que debe hacer es crear un nuevo repositorio de Git. Su propósito principal es servir como contenedor para todos los objetos de Git que agregará para este proyecto.
En la carpeta que desea rastrear, ejecute los siguientes comandos:
Una vez hecho esto, Git creará una carpeta «.git» en la raíz del directorio de su proyecto. Esto servirá como marcador para el programa Git y como carpeta de almacenamiento para todos los objetos Git para ese proyecto.
Agregar archivos existentes a su repositorio
Con un repositorio de Git en funcionamiento, lo siguiente que debe hacer es importar cualquier archivo existente a Git. Esto se debe a que Git no rastrea ningún archivo cuando crea un nuevo repositorio por primera vez.
Para hacerlo, puede ejecutar el siguiente comando en el directorio raíz de su carpeta:
Este comando le indicará a Git que incluya todos los archivos y carpetas en el directorio actual. Luego puede confirmar esto ejecutando el siguiente comando:
Comprometer su primer repositorio
Con sus archivos ahora en el repositorio, lo siguiente que debe hacer es escribir esos cambios en el sistema de archivos Git. Esto asegura que etiquetará y codificará correctamente todos los archivos nuevos en su carpeta. Para hacer esto, deberá «confirmar» el estado actual del repositorio.
Para hacer eso, puede ejecutar el siguiente comando:
Esto le indicará 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 este compromiso específico. Esto le permitirá proporcionar una breve explicación de lo que contiene, así como una forma de distinguir fácilmente este compromiso de los demás. En mi caso, dado que este es mi primer compromiso, simplemente escribiré «Commit inicial».
Con eso, ahora puede verificar si Git reconoce todos los archivos en su directorio ejecutando el siguiente comando:
Si durante lo anterior, Git arroja 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 "Your_Username" git config --global user.email "your_email_address@mailserver.com"
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 puede usar para manipular fácilmente los objetos de Git.
Por ejemplo, puede utilizar el subcomando ls-tree
para ver el contenido de un árbol Git específico, así como el valor hash actual de cada archivo.
Otro comando que puedes usar es la versión Git de mv
. Esto le permite mover archivos a cualquier lugar dentro del repositorio y aún así conservar su historial.
git mv ./hello.file ./welcome.file
Esto puede ser útil si desea cambiar el nombre de un archivo en el control de versiones, pero también desea tener la capacidad de revertir ese cambio a través de Git.
Sabiendo eso, puede ejecutar el siguiente comando para cambiar el nombre de un archivo sin perder su historial.
Por último, Git también proporciona un subcomando para eliminar objetos. Similar a mv
puede usar una versión Git de rm
para eliminar un archivo en su repositorio actual. Hacerlo de esta manera le permite eliminar limpiamente el objeto actual para ese archivo en particular.
Clonación de un repositorio remoto
También es posible importar un repositorio remoto a su máquina local. Esto es útil cuando necesita copiar un proyecto diferente a través de la red. Git le brinda 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 la historia completa de un repositorio tal como existe en ese momento específico.
git clone https://github.com/git/git.git
También es posible clonar repositorios que solo existen en una red local. Esto es útil si está 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
Uso de Git para proyectos en línea
Con eso, otra forma de colaborar con otras personas es a través del alojamiento de terceros. En esto, está utilizando un servicio remoto como Github para alojar su proyecto en Internet. Esto puede ser increíblemente útil si necesita una forma rápida y fácil de distribuir su trabajo a una gran audiencia.
No solo eso, un servicio como Github también agiliza el proceso de creación y mantenimiento de un repositorio. Como tal, es un servicio poderoso si tiene la intención de realizar proyectos colaborativos con otras personas a través de redes remotas.
Creación de su primer repositorio en línea
Sabiendo eso, iniciar un repositorio a través de Github es increíblemente fácil. Una vez que haya iniciado sesión en su cuenta, el sitio lo redirigirá a su página de destino personal.
Esta página mostrará las últimas actualizaciones sobre los proyectos que está siguiendo actualmente. Eso incluye una breve historia de todas sus contribuciones a otros proyectos.
Desde aquí, debe hacer clic en el signo «+» al lado de su foto de perfil. Aparecerá un pequeño menú desplegable donde puede elegir una serie de acciones para su cuenta. Luego, debe hacer clic en el enlace «Nuevo repositorio» de ese menú.
Aquí es donde puede especificar los detalles del proyecto que desea realizar en línea. A partir de ahí, debe configurar una serie de opciones para ajustar su proyecto.
Primero, debe proporcionar un nombre de repositorio para su proyecto. Esto servirá como un nombre donde otras personas pueden buscar cuando busquen su repositorio.
A continuación, debe establecer la configuración de privacidad para su proyecto. Puede elegir entre Público y Privado. Un repositorio público permite que otras personas busquen su proyecto en línea, mientras que uno privado le permite compartirlo solo con unas pocas personas.
Por último, debe hacer clic en el botón «Crear repositorio» para finalizar su nuevo proyecto.
Vinculando Github a tu máquina local
Con eso, lo siguiente que debe hacer es vincular su máquina local a su cuenta de Github. Para hacer esto, necesitas hacer dos cosas:
- Primero, debe crear una clave SSH para su máquina. Esta es una clave criptográfica corta que puede generar localmente en su computadora.
- Por último, debe decirle a Github su clave SSH actual. Esto permite que su máquina tenga una identidad fija para Github. A su vez, utiliza esta identidad para verificarte cada vez que actualizas tu repositorio.
Crear su clave SSH
Si está usando Debian o Ubuntu, puede instalar SSH usando apt:
Desde allí, puede ejecutar el ssh-keygen
programa para crear la clave ssh:
ssh-keygen -t ed25519 -C "ramcesred@domain.email" ssh-add /home/$USER/.ssh/id_ed25519
Vinculación de su clave SSH
Vuelva a su panel de control de Github, haga clic en su imagen de perfil y luego en Configuración.
Esto mostrará la configuración general de su cuenta de Github. Desde aquí, debe hacer clic en el enlace «Claves SSH y GPG» en la sección «Acceso» en la barra lateral izquierda de la página.
Haga clic en el botón «Nueva clave SSH» junto al encabezado «Claves SSH». Esto luego cargará la página de configuración de clave donde puede copiar el contenido de su nueva clave SSH.
Abra su archivo de claves (en mi caso, desde allí, archivo de claves id_ed25519.pub en el directorio «~/.ssh») en un editor de texto. Copie el contenido y péguelo en Github.
Envío de confirmaciones locales en línea
El último paso es que cargues los contenidos de tu proyecto local en línea.
En su máquina local, vaya a la carpeta Git y ejecute el comando:
git remote add origin git@github.com:ramcesred/my-project.git
Desde aquí, debe asegurarse de que su proyecto local se encuentre actualmente en su rama maestra. Esto es para que Git copie la versión adecuada de tu proyecto. Con eso, puede asegurarse de que ejecute el siguiente comando:
Por último, inserte el estado actual del proyecto en línea:
¡Felicidades! Ahora tiene una configuración de trabajo básica para proyectos de Git. No solo eso, ahora también tiene una idea básica de cómo funciona Git y cómo puede hacer que funcione para usted.
Preguntas frecuentes
¿Es posible obtener los cambios que otras personas han realizado en mi proyecto Git en línea?
¡Sí! Es posible copiar los cambios que otras personas han realizado en su repositorio en línea. Puede hacer esto tirando de su origen remoto.
Puede obtener fácilmente 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 sin formato, como imágenes, formatos de documentos de Office y programas compilados.
Esto se debe principalmente a que los algoritmos de compresión y hash que utiliza Git para almacenar objetos favorecen en gran medida los archivos de texto sin formato. Es posible incluir binarios bajo el control de versiones, sin embargo, es una buena práctica evitar usarlos con Git.
¿Es posible no incluir archivos en un árbol Git?
¡Sí! Puede excluir fácilmente archivos de una confirmación. Puede usar un archivo «.gitignore» para decirle a Git que no desea incluir ciertos archivos.
Este es un archivo de texto oculto que creas en la carpeta raíz de tu repositorio. En esto, incluye las rutas relativas de archivos y directorios que desea que Git ignore.
Credito de imagen: Unsplash