GNU/Linux >> Tutoriales Linux >  >> Linux

Aprenda los comandos de Git con ejemplos prácticos en Linux - Parte 1

Git es un sistema de control de versiones distribuido. Lo utilizan principalmente los desarrolladores de software para la gestión del código fuente. Git es un software gratuito y de código abierto y muchas organizaciones grandes lo usan para administrar su enorme base de código.

En este tutorial nos familiarizaremos con Git. Esta será una guía práctica. Este tutorial asume que Git está instalado en su sistema.

Configuración inicial del usuario de Git

Primero tenemos que configurar los ajustes para el usuario de Git. Podemos hacer estas configuraciones para todos los repositorios presentes en el sistema actual o para un repositorio en particular. Entendamos esto con un ejemplo:

Identidad del usuario

En Git podemos especificar la identidad del usuario proporcionando su nombre y dirección de correo electrónico. Esta información se utilizará durante cada operación de confirmación. Ejecute el siguiente comando en la terminal para asignar la identidad:

$ git config --global user.name "Linuxtechi User"
$ git config --global user.email "[email protected]"

Editor

Esta configuración configura el editor, que se utilizará al proporcionar el mensaje de confirmación:

$ git config --global core.editor vim

Compresión

Este ajuste configura el nivel de compresión que se utilizará. El rango válido para la compresión es de -1 a 9. El valor -1 indica compresión zlib y es el nivel de compresión predeterminado. El valor 0 significa que no hay compresión, y del 1 al 9 son varias compensaciones de velocidad/tamaño, siendo 9 el más lento.

$ git config --global core.compression 2

Herramienta de diferencias

Esta configuración configura la herramienta de visualización de diferencias. Por ejemplo, el siguiente comando configura vimdiff como una herramienta de comparación:

$ git config --global diff.tool vimdiff

En los comandos anteriores hemos usado –global opción en todas partes, lo que hará que esta configuración sea global. Significa que se aplicará la misma configuración a todos los repositorios presentes en el sistema actual. Para hacer que el repositorio de configuración sea específico, simplemente elimine la opción global.

Configuración de lista

Para enumerar la configuración de Git, ejecute el siguiente comando en la terminal:

$ git config -l

Este comando generará el siguiente resultado:

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.editor=vim
core.compression=2
user.name=Linuxtechi User
[email protected]
diff.tool=vimdiff

Repositorios Git

El repositorio es una ubicación donde se almacena el código fuente. Podemos crear un nuevo repositorio o usar un repositorio existente. Para crear un nuevo repositorio vacío, ejecute el siguiente comando:

$ mkdir my-repo.git
$ cd my-repo.git
$ git init --bare
Initialized empty Git repository in my-repo.git

Este método será útil cuando esté comenzando con un nuevo proyecto. Otro método es utilizar el repositorio existente. Dicho repositorio está alojado en un servidor remoto como GitHub. Para descargar el repositorio remoto, use el comando de clonación de la siguiente manera:

$ git clone https://github.com/linuxtechiuser/my-repo.git

En el comando anterior, el último argumento es la ruta del repositorio remoto.

Flujo de trabajo Git

En esta sección, analizaremos el flujo de trabajo de git.

Introduce nuevos cambios

El primer paso es introducir nuevos cambios. Puede ser la adición de un nuevo archivo o la actualización de archivos existentes. Vamos a crear un nuevo archivo y modificar el archivo existente

$ touch AUTHORS                                  # Create new file
$ echo "New Contents" >> README                  # Update existing file

Comprobar el estado del repositorio

Git es un sistema de seguimiento de contenido, identificará los dos cambios anteriores. Verifiquemos el estado del repositorio:

$ git status -s
 M README
?? AUTHORS

En la salida anterior, la letra M aparece antes de README, lo que indica que se modificó el archivo existente. Mientras ?? aparece ante AUTORES, lo que indica que se trata de un archivo nuevo y que Git no lo sabe, por lo que dicho archivo se denomina archivo sin seguimiento.

Añadir archivo al conjunto de cambios

Indiquemos a Git que rastree este nuevo archivo. Podemos lograr esto usando el comando agregar. Esta operación comenzará a rastrear los cambios realizados en este archivo.

$ git add AUTHORS

Verifiquemos el estado del repositorio ahora:

$ git status -s
A  AUTHORS
M README

El resultado anterior muestra A antes de AUTORES, lo que indica que este archivo se agregó recientemente en Git. Podemos agregar cualquier cantidad de archivos usando este comando.

Eliminar archivo del conjunto de cambios

Indiquemos a Git que elimine el seguimiento de este archivo recién agregado. Podemos lograr esto usando el comando de reinicio. Esta operación eliminará el archivo del conjunto de cambios

$ git reset AUTHORS
$ git status -s
 M README
?? AUTHORS

El resultado anterior muestra que Git no rastrea el archivo AUTORES.

Confirmar cambios

En Git, los archivos que forman parte del conjunto de cambios formarán una confirmación. Cada confirmación obtendrá una identificación única. Primero creemos un conjunto de cambios

$ git add AUTHORS
$ git add README

Ahora confirmemos los cambios en el repositorio local con el mensaje de confirmación. En el siguiente comando, el argumento -m indica un mensaje de confirmación.

$ git commit -m "Updated README and added AUTHORS"

Cuando ejecute el comando anterior, generará el siguiente resultado:

[master 0b124eb] Updated README and added AUTHORS
 2 files changed, 1 insertion(+)
 create mode 100644 AUTHORS

Revisar cambios

En esta sección, analizaremos los comandos que nos permitirán revisar los cambios del repositorio.

Ver registro de confirmaciones

El repositorio puede contener varias confirmaciones de varios autores. Podemos usar el comando de registro para ver todas las confirmaciones disponibles:

$ git log

Cuando ejecute el comando anterior, generará el siguiente resultado:

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530

    Updated README and added AUTHORS

Esta es la confirmación que habíamos creado anteriormente. En el comando anterior:

  • El ID hexadecimal representa un ID de confirmación
  • La sección de autor de la confirmación muestra detalles sobre quién realizó estos cambios
  • La sección de fecha muestra la fecha y la hora de la confirmación

Ver registro breve de confirmaciones

El comando anterior mostrará información detallada sobre cada confirmación. Para ver una breve descripción de cada compromiso, use la opción –oneline de la siguiente manera:

$ git log --oneline

Cuando ejecuta el comando anterior, generará el siguiente resultado:

0b124eb (HEAD -> master) Updated README and added AUTHORS

Ver confirmación

El ID de compromiso está asociado con cada conjunto de cambios. Podemos usar esta ID con el comando show para ver el contenido de la confirmación.

$ git show 0b124eb6d0109d837f6f9396c9937406abd3f456

Cuando ejecute el comando anterior, generará el siguiente resultado:

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530
    Updated README and added AUTHORS
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
diff --git a/README b/README
index 980a0d5..5680123 100644
--- a/README
+++ b/README
@@ -1 +1,2 @@
 Hello World!
+New Contents

Ver diferencias

El comando Diff nos permite revisar los cambios antes de crear un conjunto de cambios. El comando Diff muestra las diferencias entre el repositorio y el espacio de trabajo local. Modifiquemos el archivo README y veamos las diferencias

$ echo "Generating diff" >> README
$ git diff
diff --git a/README b/README
index 5680123..3158230 100644
--- a/README
+++ b/README
@@ -1,2 +1,3 @@
 Hello World!
 New Contents
+Generating diff

En el comando anterior:

  • El signo + indica cambios que se agregan al archivo
  • :el signo indica cambios que se eliminan del archivo

Trabajar con repositorios remotos

Hasta ahora estábamos trabajando solo con el repositorio local. Otros desarrolladores no pueden utilizar los cambios realizados por nosotros, ya que son locales. Por lo tanto, la colaboración de código no es posible. Esta sección describirá los comandos que nos permitirán interactuar con repositorios remotos

Publicar cambios en el repositorio remoto

Podemos publicar cambios locales en el repositorio remoto para que otros desarrolladores puedan usarlo. Antes de publicar los cambios, debemos crear un conjunto de cambios y una confirmación local. Podemos publicar cambios usando el comando push de la siguiente manera:

$ git push

Este comando copia los cambios del espacio de trabajo local al repositorio remoto. En Git, esta operación se conoce como operación de inserción.

Sincronizar el espacio de trabajo con el repositorio remoto

Muchos desarrolladores pueden publicar sus cambios en el espacio de trabajo en un repositorio remoto. Git nos permite descargar esos cambios y sincronizar el espacio de trabajo con el repositorio. Podemos lograr esto usando el comando pull:

$ git pull

En Git, esta operación se conoce como operación de extracción.

Comandos varios de Git

Esta sección trata varios comandos de Git que serán útiles para realizar las tareas diarias:

Modificar la última confirmación

Git nos permite modificar la última confirmación. Podemos usar este método para evitar la creación de una nueva confirmación. Se utiliza principalmente para modificar el mensaje de confirmación anterior. Para modificar la última confirmación, use –amend opción de la siguiente manera:

$ echo "Yet another new change" >> README
$ git add README
$ git commit --amend -m "This is amended commit

Ahora revisemos el registro de confirmación:

$ git log
commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Si observa cuidadosamente el resultado anterior, podemos ver un nuevo mensaje de confirmación, su ID y una nueva marca de tiempo.

Eliminar archivos sin seguimiento

Los archivos sin seguimiento son aquellos que son desconocidos para Git. Podemos eliminar todos los archivos sin seguimiento usando el comando de limpieza.

Vamos a crear algunos archivos sin seguimiento:

$ touch delete-me-1 delete-me-2 delete-me-3

Para eliminar todos los archivos anteriores sin seguimiento, use el comando de limpieza con -f opción de la siguiente manera:

$ git clean -f
Removing delete-me-1
Removing delete-me-2
Removing delete-me-3

Tenga en cuenta que este comando eliminará los archivos de forma permanente, por lo tanto, utilícelo con precaución.

Ver confirmaciones de un autor en particular

Si usamos el comando de registro, muestra las confirmaciones de todos los autores. Para ver las confirmaciones de un autor en particular, use la marca de autor de la siguiente manera:

$ git log --author=Linuxtechi

Cuando ejecute el comando anterior, enumerará todas las confirmaciones de los autores de Linuxtechi de la siguiente manera:

commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Ver el historial de cada archivo línea por línea

Para ver el historial línea por línea, podemos usar el comando culpar.

$ git blame README

Cuando ejecute el comando anterior, generará el siguiente resultado:

76294131 (Linuxtechi User         2018-07-27 21:12:11 -0700 1) Hello World!
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 2) New changes
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 3) Yet another changes

En el comando anterior:

  • La primera columna indica el ID de confirmación
  • La segunda columna indica el autor
  • La tercera columna indica las marcas de tiempo
  • La última columna indica el número de línea y el contenido del archivo

Ver diferencia desde el área de preparación

Cuando crea un conjunto de cambios usando el comando Agregar, el archivo se mueve lógicamente al área de preparación. Veamos con este ejemplo:

$ echo "Let us demonstrate staging area" >> README
$ git add README
$ git diff

El comando anterior no mostrará ninguna diferencia ya que el archivo se mueve al área de preparación. Usemos la operación por etapas para ver las diferencias:

$ git diff --staged
diff --git a/README b/README
index 74729a2..8bc5ffd 100644
--- a/README
+++ b/README
@@ -1,3 +1,4 @@
 Hello World!
 New changes
 Yet another changes
+Let us demonstrate staging area

Conclusión

En este tutorial discutimos las operaciones básicas de Git con ejemplos simples. Este tutorial es un buen punto de partida para los novatos de Git.

Leer más: Aprenda el comando Git con ejemplos prácticos en Linux - Parte 2


Linux
  1. Cómo usar el comando Hexdump de Linux con ejemplos prácticos

  2. Comandos de cabeza y cola en Linux explicados con ejemplos

  3. Más de 10 comandos de Linux VI con ejemplos

  4. Mis 8 comandos prácticos favoritos de Linux

  5. Comando JQ en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando Find de Linux con ejemplos prácticos

Comandos de Nmap con ejemplos

Comandos RPM en Linux con ejemplos

Comandos SSH en Linux con ejemplos de uso

Comando de espera en Linux explicado con ejemplos prácticos