Git es un sistema de control de versiones distribuido. Es utilizado principalmente por los desarrolladores de software para la gestión de su código fuente. Git es software libre y de código abierto y muchas grandes organizaciones lo utilizan para gestionar su enorme base de código.
En este tutorial nos familiarizaremos con Git. Esto será una guía práctica. Este tutorial asume que Git está instalado en tu sistema.
Índice
- 1 Configuración inicial del usuario de Git
- 2 Identidad de usuario
- 3 Editor
- 4 Compresión
- 5 Herramienta Diff
- 6 Configuración de la lista
- 7 Repositorios de Git
- 8 Flujo de trabajo de Git
- 9 Comprobar el estado del repositorio
- 10 Eliminar archivo del conjunto de cambios
- 11 Confirmar cambios
- 12 Revisar cambios
- 13 Ver diferencias
- 14 Trabajar con repositorios remotos
- 15 Comandos misceláneos de Git
- 16 Eliminar archivos no rastreados
- 17 Ver diferencias con el área de preparación
- 18 Conclusión
Configuración inicial del usuario de Git
Primero tenemos que configurar los ajustes para el usuario de Git. Podemos hacer estos ajustes para todos los repositorios presentes en el sistema actual o para un repositorio en particular. Entendamos esto con el ejemplo:
Identidad de 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 el terminal para asignar la identidad:
>
Editor
Este parámetro configura el editor, que se utilizará al proporcionar el mensaje de confirmación:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Compresión
Este ajuste configura el nivel de compresión que se va a 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 de 1 a 9 son varias compensaciones de velocidad/tamaño, siendo 9 la más lenta.
git config –global core.compression 2>$ git config –global core.compression 2
Herramienta Diff
Este ajuste configura la herramienta de visualización de diferencias. Por ejemplo, el siguiente comando configura vimdiff como una herramienta de diferencias:
$ git config --global diff.tool vimdiff
En los comandos anteriores hemos utilizado la opción -global en todas partes, lo que hará que esta configuración sea global. Esto 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 la lista
Para listar la configuración de Git, ejecuta el siguiente comando en el terminal:
$ git config -l
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Este comando generará la siguiente salida:
core.repositorioformatversion=0 core.filemode=true core.bare=falso core.logallrefupdates=true core.editor=vim compresión.core=2 user.name=Linuxtechi Usuario usuario.email=linuxtechiuser@linuxtechi.com diff.tool=vimdiff
Repositorios de Git
El repositorio es una ubicación donde se almacena el código fuente. Podemos crear un nuevo repositorio o utilizar 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
Inicializado el repositorio vacío de Git en my-repo.git>.
Este método será útil cuando empiece con un nuevo proyecto. Otro método es usar el repositorio existente. Dicho repositorio está alojado en un servidor remoto como GitHub. Para descargar el repositorio remoto use el comando clonar de la siguiente manera:
$ git clone http://github.com/linuxtechiuser/my-repo.git
En el comando anterior el último argumento es la ruta del repositorio remoto.
Flujo de trabajo de Git
En esta sección discutiremos el flujo de trabajo de git.
Introducir 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 # Crear un nuevo archivo echo "New Contents">>> README # Actualizar archivo existente
>
Comprobar el estado del repositorio
Git es un sistema de seguimiento de contenidos, que identificará más de dos cambios. Comprobemos el estado del repositorio:
$ git status -s
M LÉAME
?? AUTORES
En la letra de salida M de arriba aparece antes de README, lo que indica que el archivo existente ha sido modificado. Considerando que ?? aparece ante AUTORES lo que indica que se trata de un nuevo archivo y que Git no está al tanto de ello, por lo que dicho archivo se denomina archivo sin seguimiento.
Añadir archivo al conjunto de cambios
Vamos a instruir a Git para que rastree este nuevo archivo. Podemos lograr esto usando el comando add. Esta operación iniciará el seguimiento de los cambios realizados en este archivo.
$ git add AUTHORS
Verifiquemos el estado del repositorio ahora:
$ git status -s
A AUTORES
M README>> LÉAME
La salida de arriba muestra A antes de AUTHORS, lo que indica que este archivo se ha añadido recientemente en Git. Podemos añadir cualquier número de archivos usando este comando.
Eliminar archivo del conjunto de cambios
Vamos a instruir a Git para que des rastree este archivo recién agregado. Podemos lograr esto usando el comando reset. Esta operación eliminará el archivo del conjunto de cambios
$ git reset AUTHORS estado del git -s M LÉAME ?? AUTORES
La salida de arriba muestra que el archivo AUTHORS no es rastreado por Git.
Confirmar cambios
En Git, los archivos que forman parte del conjunto de cambios formarán una confirmación. Cada confirmación recibirá un ID único. Vamos a crear primero el conjunto de cambios
$ git añadir AUTORES git add README
Ahora vamos a confirmar los cambios en el repositorio local con el mensaje de confirmación. El argumento command -m indica el mensaje de confirmación.
$ git commit -m «Updated README and added AUTHORS»
Cuando ejecute el comando anterior, se generará la siguiente salida:
[master 0b124eb] Actualizado README y añadido AUTORES
2 archivos modificados, 1 inserción(+)
modo de creación 100644 AUTHORS>
Revisar cambios
En esta sección discutiremos comandos que nos permitirán revisar los cambios en el repositorio.
Ver el registro de confirmación
El repositorio puede contener múltiples confirmaciones de múltiples autores. Podemos usar el comando log para ver todas las confirmaciones disponibles:
$ git log
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i
Cuando ejecute el comando anterior, se generará la siguiente salida:
compromiso 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Autor: Usuario de Linuxtechi
Fecha: vie jul 27 21:06:55 2018 +0530
Actualizado README y añadido AUTORES
Este es un compromiso que habíamos creado antes. En el mando de arriba:
- El ID hexadecimal representa un ID de confirmación
- La sección de autor de commit muestra detalles sobre quién hizo estos cambios
- La sección Fecha muestra la fecha y la hora de confirmación
Ver log de confirmación corto
El comando anterior mostrará información detallada sobre cada confirmación. Para ver una breve descripción sobre cada opción de uso de commit -online, haga lo siguiente:
$ git log --online
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Cuando ejecute el comando anterior, generará la siguiente salida:
0b124eb (HEAD -> master) LÉAME actualizado y añadido AUTORES
Ver commit
El ID de confirmación está asociado a cada conjunto de cambios. Podemos usar este ID con el comando show para ver el contenido de la confirmación.
$ git show 0b124eb6d0109d837f6f9396c9937406abd3f456
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i
Cuando ejecute el comando anterior, se generará la siguiente salida:
compromiso 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Autor: Usuario de Linuxtechi
Fecha: vie jul 27 21:06:55 2018 +0530
Actualizado README y añadido AUTORES
diff –git a/AUTHORS b/AUTHORS
nuevo modo de archivo 100644
índice 0000000..e69de29
diff –git a/README b/README
índice 980a0d5..5680123 100644
— a/README
+++ b/README
@@ -1 +1,2 @@
Hola Mundo!
+Nuevos contenidos > Nuevos contenidos
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
índice 5680123..3158230 100644
— a/README
+++ b/README
@@ -1,2 +1,3 @@
Hola Mundo!
Nuevos Contenidos
+Generando diff>
En el mando de arriba:
- El signo + indica los cambios que se añaden al archivo
- – indica cambios que se eliminan del archivo
Trabajar con repositorios remotos
Hasta ahora sólo trabajábamos con repositorios locales. Otros desarrolladores no pueden utilizar los cambios que nosotros realizamos ya que son locales. Por lo tanto, la colaboración de código no es posible. Esta sección describirá 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 utilizarlo. Antes de publicar los cambios tenemos que crear un conjunto de cambios y una confirmación local. Podemos publicar los cambios usando el comando push de la siguiente manera:
$ git push
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i
Este comando copia los cambios del espacio de trabajo local al repositorio remoto. En Git, esta operación se denomina operación de empuje.
Sincronizar el espacio de trabajo con el repositorio remoto
Muchos desarrolladores pueden publicar sus cambios de espacio de trabajo en el 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
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i
En Git, esta operación se denomina operación pull.
Comandos misceláneos de Git
Esta sección discute comandos misceláneos de Git que serán útiles para realizar 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 nuevas confirmaciones. Se utiliza principalmente para modificar el mensaje de confirmación anterior. Para modificar la última opción de uso de commit -amend como sigue:
$ echo "Otro nuevo cambio">> README git add README git commit --amend -m "This is amended commit
Ahora vamos a comprobar el registro de confirmaciones:
$ git log commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master) Autor: Usuario de Linuxtechi Fecha: vie jul 27 21:54:55 2018 +0530 Esto es enmendado commit
>
Si observamos detenidamente la salida anterior, podremos ver el nuevo mensaje de confirmación, su ID y la nueva marca de tiempo.
Eliminar archivos no rastreados
Los archivos sin rastrear son aquellos que Git desconoce. Podemos eliminar todos los archivos no rastreados usando el comando clean.
Vamos a crear algunos archivos sin seguimiento:
delete-me-1 delete-me-2 delete-me-3> Toca delete-me-1 delete-me-2 delete-me-3
Para eliminar todos los archivos sin rastrear de arriba, use el comando clean con la opción -f como se indica a continuación:
$ git clean -f Eliminar delete-me-1 Eliminar delete-me-2 Eliminando 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 log entonces muestra las confirmaciones de todos los autores. Para ver las confirmaciones de un autor en particular, utilice la marca -author 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:
compromiso 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Autor: Usuario de Linuxtechi
Fecha: vie jul 27 21:54:55 2018 +0530
Esto es enmendado 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 de autoría.
$ git blame README
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i
Cuando ejecute el comando anterior, se generará la siguiente salida:
76294131 (Usuario de Linuxtechi 2018-07-27 21:12:11 -0700 1) Hola Mundo!
8bf67aec (Usuario Linuxtechi 2018-07-27 21:54:55 +0530 2) Nuevos cambios
8bf67aec (Usuario de Linuxtechi 2018-07-27 21:54:55 +0530 3) Otro cambio
En el mando de arriba:
- La primera columna indica commit ID
- La segunda columna indica el autor
- La tercera columna indica marcas de tiempo
- La última columna indica el número de línea y el contenido del archivo
Ver diferencias con el área de preparación
Cuando se crea un conjunto de cambios usando el comando add, el archivo se mueve lógicamente al área de preparación. Veamos con este ejemplo:
$ echo "Demostremos la zona de montaje">> README git add README git diff
El comando anterior no mostrará ninguna diferencia cuando el archivo se mueva al área de preparación. Usemos la operación por etapas para ver las diferencias:
$ git diff --staged diff --git a/README b/README índice 74729a2..8bc5ffd 100644 --- a/README +++ b/README @@ -1,3 +1,4 @@ Hola Mundo! Nuevos cambios Otro cambio más +Demostrémosle el área de preparación
Conclusión
En este tutorial hemos discutido las operaciones básicas de Git con ejemplos sencillos. Este tutorial es un buen punto de partida para los novatos de Git.
Leer más : Aprender el comando Git con ejemplos prácticos en Linux – Parte 2