En un artículo anterior, mencionamos la guía rápida y la descarga de la hoja de ayuda de Vi. En este nuevo texto, nos enfocaremos en los comandos básicos de Git que te serán útiles para comenzar a utilizarlo.
¿Qué es Git?
Git es un sistema de control de versiones distribuido ampliamente utilizado en numerosos proyectos de código abierto. Fue creado en 2005 por Linus Torvalds, el creador de Linux. Este programa permite el desarrollo no lineal de proyectos y puede manejar grandes volúmenes de datos de forma eficiente al almacenarlos en el servidor local.
En este tutorial, vamos a adentrarnos en Git y aprenderemos cómo comenzar a utilizarlo.
En este tutorial, estoy utilizando Ubuntu, pero puedes utilizar cualquier distribución de Linux que prefieras. A excepción de la instalación, los comandos restantes son los mismos en todas las distribuciones de Linux.
Instalar Git
Para instalar Git en Ubuntu y otros sistemas basados en Ubuntu, simplemente ejecuta este comando:
$ sudo apt install git
Al finalizar, contarás con Git instalado y listo para utilizar.
Configurar Git
Después de instalar Git, ya sea a través de apt o desde el código fuente, es necesario copiar tu nombre de usuario y correo electrónico en el archivo gitconfig. Posteriormente, podrás acceder a este archivo en ~/.gitconfig.
Puedes utilizar los siguientes comandos para agregar la información necesaria. Reemplaza 'Usuario' por tu nombre de usuario y '[email protected]' por tu correo electrónico.
$ git config --global user.name "Usuario"
$ git config --global user.email "[email protected]"
Puedes abrirlo usando el editor vim o cualquiera de tus editores de texto favoritos.
$ sudo vim ~/.gitconfig
¡Excelente! Has completado la configuración. Ahora es momento de comenzar con Git.
Repositorio
Crea un nuevo directorio, ábrelo y ejecuta este comando:
$ git init
ayuda: Usando 'master' como el nombre de la rama inicial. Este nombre ...
ayuda: está sujeto a cambios. Para configurar el nombre de la rama ...
ayuda: de sus nuevos repositorios, reprimiendo esta advertencia, llama ...
ayuda:
ayuda: git config --global init.defaultBranch <nombre>
ayuda:
ayuda: Los nombres comúnmente elegidos en lugar de 'master' son 'main' ...
ayuda: 'development'. Se puede cambiar el nombre de la rama recién ...
ayuda:
ayuda: git branch -m <nombre>
Inicializado repositorio Git vacío en /home/marcocarmonapy/Demo/.git/
Esto creará un nuevo repositorio Git. Tu repositorio local consta de tres "árboles" mantenidos por Git.
El primero es tu Directorio de Trabajo, que contiene los archivos actuales. El segundo es el Índice, que actúa como un área de almacenamiento. Y, finalmente, el HEAD, que apunta a la última confirmación que has realizado.
Para verificar tu repositorio (ya sea el repositorio que acabas de crear o uno existente en un servidor), utiliza:
$ git clone /dirección/directorio
Añadir archivos y confirmar
Puedes proponer cambios utilizando:
$ git add <nombre_archivo>
Donde "nombre_archivo" es un archivo existente. Esto agregará un nuevo archivo para su confirmación. Si deseas agregar cada nuevo archivo con un solo comando, solo necesitas escribir en tu terminal lo siguiente:
$ git add --all
Para verificar el estado de tus archivos, solo necesitas ingresar el siguiente comando:
$ git status
$ ls -la
total 12
drwxrwxr-x 3 4096 jun 8 14:40 .
drwxr-x--- 18 4096 jun 8 14:34 ..
-rw-rw-r-- 1 0 jun 8 14:40 archivo1
-rw-rw-r-- 1 0 jun 8 14:40 archivo2
drwxrwxr-x 7 4096 jun 8 14:34 .git
$ git add archivo1
$ git add --all
$ git status
En la rama master
No hay commits todavía
Cambios a ser confirmados:
(usa "git rm --cached <archivo>..." para sacar del área de stage)
nuevos archivos: archivo1
nuevos archivos: archivo2
Como puedes observar, existen cambios en proceso, pero aún no han sido confirmados. Para obtener una confirmación oficial de estas modificaciones, puedes emplear:
$ git commit -m "Mensaje de commit"
[master (commit-raíz) f8236b9] Mensaje de commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 archivo1
create mode 100644 archivo2
También puede hacerlo (preferiblemente):
$ git commit -a
Después de eso, debes escribir el mensaje de confirmación. En este momento, el archivo está confirmado en el HEAD, pero aún no se ha confirmado en tu repositorio remoto.
Empuja tus cambios
Los cambios que realizaste están en la cabecera (HEAD) de tu copia de trabajo local. Si aún no has clonado un repositorio existente y deseas conectar tu repositorio a un servidor remoto (como GitHub), primero necesitas agregarlo utilizando el siguiente comando:
$ git remote add origin <dirección-del-servidor>
Ahora puedes enviar tus cambios al servidor remoto seleccionado. Para hacerlo, simplemente ejecuta:
$ git push -u origin master
Ramificación
Las ramas se emplean para desarrollar características de forma aislada entre sí. La rama principal o principal es la rama "por defecto" al crear un repositorio. Utiliza otras ramas para el desarrollo y luego vuelve a fusionarlas con la rama principal una vez finalizado.
Cree una nueva rama llamada "miRama" y cambie a ella usando:
$ git checkout -b miRama
Cambiado a nueva rama 'miRama'
Para volver a master, simplemente ejecuta:
$ git checkout master
Cambiado a rama 'master'
Si deseas eliminar la rama que acabas de crear, utiliza:
$ git branch -d miRama
Eliminada la rama miRama (era f8236b9).
Para que una rama esté disponible para los demás, es necesario empujarla a un repositorio remoto. Para hacerlo, simplemente debes adaptar el siguiente comando:
$ git push origin <nombre-de-la-rama>
Actualizar y fusionar
Para actualizar tu repositorio local a la confirmación más reciente, ejecuta:
$ git pull
Para fusionar otra rama en tu rama activa (por ejemplo, master), utiliza:
$ git merge <rama>
En ambas situaciones, Git intenta fusionar automáticamente los cambios. Lamentablemente, esto no siempre es posible y puede generar conflictos. Es tu responsabilidad solucionar estos conflictos manualmente editando los archivos indicados por Git. Una vez que hayas realizado los cambios necesarios, debes marcarlos como fusionados utilizando:
$ git add <nombre-archivo>
Antes de combinar los cambios, también puedes previsualizarlos para verificar cómo se verán, utilizando:
$ git diff <rama-origen> <rama-destino>
Registro Git
Puedes ver el historial del repositorio usando
$ git log
Para ver un registro en el que cada confirmación es una línea, puedes utilizar:
$ git log --pretty=oneline
f8236b907600ba659b14f3ad0b201ba91d590e12 (HEAD -> master) Mensaje de ...
O tal vez quieras ver un árbol de arte ASCII de todas las ramas, decorado con los nombres de las etiquetas y las ramas:
$ git log --graph --oneline --decorate --all
* f8236b9 (HEAD -> master) Mensaje de commit
Si desea ver sólo los archivos que han cambiado:
$ git log --name-status
Y para cualquier ayuda durante todo el proceso, puedes usar git --help
Enhorabuena, ya has terminado con los conceptos básicos de git. ¿No es Git impresionante?
Hoja de ayuda de Git gratis
Si deseas, puedes descargar estos comandos básicos de Git como una guía de referencia rápida desde el siguiente enlace:
¿Preguntas? ¿Sugerencias? La sección de comentarios es suya.