GNU/Linux >> Tutoriales Linux >  >> Linux

40 comandos git útiles para administradores y desarrolladores de Linux

Git es un potente rastreador de versiones que permite a los desarrolladores realizar un seguimiento de los cambios en su código fuente. Es una herramienta muy utilizada por los desarrolladores de código abierto. Aunque fue diseñado para coordinar tareas de programación, Git puede rastrear cualquier conjunto de archivos de manera efectiva. Además, está desarrollado por Linus Torvalds, el hombre detrás del kernel de Linux. Por lo tanto, si es un desarrollador de código abierto que agrega funciones a su software con el tiempo o está trabajando con varios pares para desarrollar productos empresariales de vanguardia, Git puede ser el sistema de seguimiento ideal para su trabajo. Quédese con nosotros para conocer algunos de los comandos fundamentales de git que simplificarán enormemente sus ciclos de desarrollo.

Comandos prácticos de git para desarrolladores de código abierto

La CLI de git ofrece una cantidad considerable de comandos de git para facilitar el proceso de desarrollo de software a los desarrolladores. Nuestros editores han esbozado algunos de los comandos más útiles para comodidad de nuestros lectores. Así que continúa leyendo y descúbrelos a tu propio ritmo.

1. Configurar perfil de usuario

Puede configurar su perfil de git usando el comando git config. Lo mínimo que puede configurar es el nombre de usuario y la dirección de correo electrónico. Git permite a los usuarios configurar estas políticas de forma global o por proyecto. Use el siguiente comando para configurar el usuario y la dirección de correo electrónico para cada repositorio.

$ git config user.name "USERNAME"
$ git config user.email "[email protected]"

Agregue el –global opción para establecer estas políticas globalmente.

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

2. Inicializar repositorios de Git

Un repositorio git o simplemente un repositorio es el directorio raíz para sus proyectos de código abierto. Contiene los archivos fuente, subdirectorios para objetos, encabezados y etiquetas, entre otros. Puede inicializar fácilmente un repositorio git con el siguiente comando.

$ git init
- -

Es uno de los comandos de git más comunes que usará en su vida. Ahora puede comenzar a agregar sus archivos de origen y jugar con ellos como desee.

3. Agregar archivos de proyecto

Agregar archivos a proyectos existentes es muy fácil usando git. Puede agregar fácilmente todos los archivos/directorios modificados al sistema de seguimiento usando el comando git add. Eche un vistazo rápido al siguiente ejemplo para ver cómo funciona.

$ git add file
$ git add *.php

Cuando emita el comando git add, agregará todos los archivos al índice del proyecto desde el directorio de trabajo actual. Puede especificar archivos particulares como se hizo en el primer ejemplo. El segundo ejemplo agregará todos los archivos PHP al índice. Git los marcará para la puesta en escena.

4. Verificar archivos agregados

Puede verificar los archivos que se organizarán durante la próxima confirmación mediante el comando git status. Mostrará todos los archivos nuevos o archivos que han sido modificados.

$ git status

Ejecute el comando anterior cada vez que desee ver los detalles. Mostrará una lista resumida de todos los archivos que se organizarán en la próxima confirmación.

5. Confirmar cambios en el repositorio

Cuando confirma sus cambios, git toma una instantánea de su base de código. Así es como git realiza un seguimiento de sus cambios y proporciona control de versiones. Deberá usar el comando git commit para esto.

$ git commit

Cuando ejecute el comando anterior, git le pedirá que ingrese cierta información, como agregar una descripción. Invocará el editor de Linux predeterminado que configuró durante su instalación de git. Use el siguiente comando para evitar esta indiscreción.

$ git commit -m "First Commit"

Por lo tanto, puede agregar la descripción directamente si usa el -m opción.

6. Mostrar los registros

Puede consultar los registros cada vez que desee ver los cambios que ha realizado en su repositorio. Simplemente use el comando git log para hacer esto desde la terminal de Linux.

$ git log
$ git log --file

El primer ejemplo mostrará información generalizada sobre tus confirmaciones de git. Utilice el segundo comando si desea ver los cambios solo en un archivo específico. También puede agregar muchas más opciones como –log-size o incluso buscar confirmaciones usando expresiones regulares.

7. Verificar ramas de proyecto

Una rama de git representa una línea de desarrollo independiente en su proyecto. Puede verificar su rama actual muy fácilmente usando el comando git branch. Mostrará la rama actualmente activa donde está desarrollando nuevas funciones o modificando las antiguas.

$ git branch

La salida marcará la rama actual con un asterisco (*).

8. Restablecer ramas del proyecto

Puede restablecer fácilmente el repositorio actual y el directorio de trabajo a un estado conocido. El comando git reset ajustará la referencia HEAD a una confirmación específica y actualizará el índice para que coincida con esta confirmación en particular.

$ git reset

Use el siguiente comando para realizar un restablecimiento parcial de su rama actual.

$ git reset --soft

También puede realizar un restablecimiento completo de manera similar. Simplemente reemplace –soft con el –duro opción, como se demuestra en el siguiente ejemplo.

$ git reset --hard

9. Agregar una nueva sucursal

Agregar una nueva rama le permite trabajar en funciones más nuevas de forma independiente. Puede agregar fácilmente una rama con el comando git branch. Simplemente agregue el nombre de la sucursal, como se muestra a continuación.

$ git branch new-feature

Verifique si la adición fue exitosa o no emitiendo el comando git branch. Debería mostrar la rama recién creada llamada new-feature . Sin embargo, no puede agregar más de una sucursal con el mismo nombre de sucursal. Causará un error fatal.

10. Cambiar entre sucursales

Puede cambiar entre varias ramas de su proyecto muy fácilmente usando el comando de pago. Es uno de los comandos git más utilizados que usará durante el desarrollo de software. Eche un vistazo rápido al siguiente ejemplo para ver cómo funciona.

$ git checkout new-feature

Este comando le notificará que la rama se ha cambiado con éxito. También puede verificar esto usando el comando git branch que se mostró anteriormente.

11. Eliminar una rama de proyecto

Cuando haya desarrollado nuevas funciones con éxito, querrá que se agreguen a la rama maestra de git. Una vez hecho esto, puede ir y eliminar esa rama por completo. El -D La opción del comando git nos permite hacer esto muy fácilmente.

$ git checkout master
$ git branch -D new-feature

Primero debe salir de la rama para eliminarla correctamente. De lo contrario, git arrojará un error.

12. Comprobar diferencias entre confirmaciones, árboles y archivos

El comando git diff nos permite ver los cambios en dos archivos múltiples, el árbol de trabajo y el árbol de índice, entre confirmaciones y entre objetos blob. Es uno de los comandos de git más fundamentales que se utilizan para realizar un seguimiento de los cambios en las bases de código.

$ git diff
$ git diff new-feature master

El primer ejemplo mostrará los cambios entre el árbol de trabajo y el árbol de índice. El segundo ejemplo mostrará los cambios entre la rama maestra y la rama de nueva función.

13. Combinar dos sucursales

Puede fusionar fácilmente dos ramas de desarrollo diferentes usando el comando git merge. Combinará dos ramas en una rama unificada. Puede usar el comando git merge para varios propósitos. Eche un vistazo al siguiente ejemplo para ver cómo podemos usarlos.

$ git merge fixes new-feature
$ git merge -s ours obsolete
$ git merge --no-commit main

El primer ejemplo fusiona dos nuevas funciones de rama y correcciones para crear una sola rama. El segundo ejemplo fusiona la rama obsol] con la rama de desarrollo actual usando nuestro estrategia. El ejemplo final fusiona la rama principal con la rama actual, pero deshabilita la confirmación automática.

14. Revertir confirmaciones existentes

A veces, puede decidir que algunas de sus confirmaciones ya no son necesarias. En tales casos, es mejor revertir estas confirmaciones que modificar la rama por completo. El comando git revert nos permite hacer exactamente esto.

$ git revert ad9ef37d88ad4gfyg90aa6a23f71e775982f4b
$ git revert HEAD~3

El primer ejemplo revertirá los cambios introducidos por el id de confirmación f5ad9ef37d88ad4gfyg90aa6a23f71e775982f4b . El segundo ejemplo reincide en la cuarta última confirmación en HEAD y realiza una nueva confirmación.

15. Directorio de trabajo oculto

Puede guardar el estado actual de su directorio de trabajo en algún lugar temporalmente y volver a él más tarde cuando lo desee. Esto se llama esconder en la terminología de git. Simplemente almacena el estado de su directorio de trabajo y el índice para que pueda trabajar en algo nuevo.

$ git stash

Los desarrolladores suelen utilizar este comando cuando se encuentran en una situación complicada. Les permite almacenar el flujo de trabajo desordenado y volver a resolverlo más tarde. Usa el comando stash list para ver tu lista oculta.

$ git stash list

16. Clonar un Repositorio

Una de las mejores cosas del código abierto es que puedes trabajar en el código de otras personas como si fuera el tuyo. Git facilita la descarga de un proyecto existente mediante el comando git clone. Eche un vistazo a la siguiente ilustración para ver cómo funciona esto en la vida real.

$ git clone <GIT:URL>
$ git clone git://example.com/git.git/ test-dir

Esto descargará dicho proyecto en el test-dir directorio de su sistema.

17. Obtener nuevas actualizaciones

Los proyectos de la vida real están evolucionando todo el tiempo. Suponga que clonó un repositorio anteriormente desde un repositorio remoto. ¿Qué harás cuando los desarrolladores actualicen nuevas funciones en ese repositorio? Es un inconveniente clonar el mismo repositorio una y otra vez en su máquina local. El comando git pull te salva de esto.

$ git pull

Este comando actualizará la versión local de su proyecto con cualquier cambio nuevo realizado por los colaboradores. Recuerde cambiar su directorio de trabajo al directorio del proyecto antes de obtener las últimas actualizaciones.

18. Empuje sus actualizaciones

Una vez que haya terminado de trabajar con sus actualizaciones, puede agregarlas al repositorio remoto presionando el. La diferencia entre git push y git commit es que cuando confirma algunos cambios, se agregan a su repositorio local en lugar de al repositorio remoto.

$ git push

Este comando agregará sus actualizaciones al repositorio remoto del proyecto. Por lo general, usará pull and push para colaborar con desarrolladores remotos. Por lo tanto, es importante que los domines a la perfección.

19. Mostrar repositorios remotos

El comando remoto git nos permite administrar un conjunto de repositorios rastreados convenientemente desde la terminal de Linux. Puede usarlo para clonar solo algunas ramas seleccionadas.

$ git remote
$ git remote --verbose

El primer ejemplo mostrará todos los repositorios remotos que están configurados actualmente. Agregando el –verbose flag nos muestra información detallada al respecto.

20. Conectarse a repositorios remotos

Puede configurar repositorios remotos para que su repositorio local esté conectado a un servidor remoto. Al hacer esto, podrá enviar sus cambios locales directamente al servidor remoto. Eche un vistazo rápido a la siguiente ilustración para ver cómo funciona esto en la práctica.

$ git remote add origin <server>

El comando anterior agregará 'origen' como el nombre remoto al servidor. Puede descubrir la URL del servidor explorando la Fuente subpestaña de tu repositorio de GitHub.

21. Agregue etiquetas a su proyecto

Las etiquetas le permiten marcar eventos significativos en sus proyectos de código abierto. Los desarrolladores a menudo los usan para marcar nuevas recaídas o correcciones de errores. Eche un vistazo de cerca a los siguientes comandos de git para aprender cómo agregar etiquetas a sus proyectos usando git.

$ git tag 1.0.0 <commit-id>

Este comando agrega la etiqueta 1.0.0 a la confirmación específica. Puede obtener el ID de compromiso con el siguiente comando.

$ git log

Empuje la etiqueta a su repositorio remoto usando el siguiente comando.

$ git push origin --tags

Debe especificar las –etiquetas opción explícitamente. De lo contrario, la etiqueta solo se agregará a su repositorio local, no al repositorio remoto.

22. Obtener datos remotos

Otro comando común de git que usará con frecuencia es fetch. Es muy útil por varias razones. En primer lugar, fetch solo recupera nuevos datos/referencias, pero no los fusiona con su sucursal local. Por lo tanto, puede estar seguro de que la copia de trabajo de su repositorio local permanecerá sana y salva.

$ git fetch origin

Es una excelente manera de verificar el progreso reciente de un código base remoto sin romper su propia versión del proyecto. Una vez que esté seguro de que todos los datos nuevos están listos, simplemente combínelos con sus sucursales locales.

23. Restaurar cambios no confirmados

El comando git restore permite a los desarrolladores restaurar cualquier cambio no confirmado en sus proyectos. Estos son cambios que ha realizado en su versión de trabajo del proyecto o contenido en su índice local. Puede usar este comando para revertir cambios en su copia de trabajo o cambios en el índice o para hacer ambas cosas.

$ git restore --staged test.php
$ git restore --source=HEAD --staged --worktree test.php

El primer comando restaurará el archivo test.php en el índice y el segundo comando restaurará tanto el índice como el directorio de trabajo actual de su proyecto.

24. Eliminar archivos

A veces, es posible que desee eliminar algunos archivos de su árbol de trabajo o del índice del proyecto por completo. Puede usar el comando git rm para hacer esto. Sin embargo, este comando no eliminará los archivos especificados de su directorio de trabajo. Use el comando rm de Linux para hacerlo.

$ git rm *.php
$ git rm -r dir/
$ git rm --cached *.php

El primer comando elimina todos los archivos PHP del árbol de trabajo y del índice. El segundo comando elimina todo del directorio dir/. El último comando eliminará todos los archivos PHP solo del índice, no del árbol de trabajo.

25. Mover o cambiar el nombre de archivos

Puede mover o cambiar el nombre de los archivos usando git, tal como lo haría con el comando mv de Linux. En realidad, es una forma abreviada de desarrolladores ocupados integrada directamente en git.

$ git mv test.py new-test.py

El comando anterior simplemente realiza las siguientes operaciones de Linux.

$ mv test.py new-test.py
$ git add new-test.py
$ rm test.py

Por lo tanto, puede usar el comando git mv para evitar tener que escribir un montón de comandos de terminal de Linux adicionales.

26. Limpiar archivos sin seguimiento

Los archivos sin seguimiento son archivos que no están bajo el sistema de control de versiones de git. Tropezará con este tipo de archivos con bastante frecuencia cuando trabaje en proyectos a gran escala. Puede eliminarlos usando varios métodos, incluidos git reset y git checkout. Sin embargo, usar el comando git clean es la forma más adecuada de hacerlo.

$ git clean
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean

El comando anterior falló porque así es como está configurado git en mi sistema. Puede solucionar este problema agregando -n , -i , o -f opción.

$ git clean -n

27. Optimizar repositorios locales

Uno de mis comandos de git favoritos es gc. Se usa para la recolección de basura y lo ayudará a reducir el tamaño de sus repositorios locales. Debe usar este comando con frecuencia si está trabajando en proyectos extensos.

$ git gc

El comando git gc se ejecuta extremadamente rápido y limpia cualquier archivo innecesario que se encuentre en su repositorio local. Es uno de los mejores métodos de optimización debido a su rapidez y eficiencia. También puede usar el –agresivo opción para aumentar la optimización. Sin embargo, requerirá más tiempo para completarse.

28. Archivar repositorios locales

Puede archivar fácilmente sus repositorios locales usando el comando git archive. Permite a los desarrolladores almacenar su proyecto en un lugar seguro. Puede transferir este archivo a través de la red o almacenarlo en el sistema de archivos de Linux.

$ git archive --output=test --format=tar master

El comando anterior almacena el repositorio en un archivo tar llamado prueba. Puede omitir el –formato opción si quieres. En este caso, git intentará inferir el formato del archivo a partir de su nombre. Hay muchas más opciones disponibles para este comando.

29. Buscar patrones

Cuando trabaje en proyectos grandes, a menudo necesitará buscar cosas diferentes. Afortunadamente, el comando git grep nos permite buscar patrones específicos en nuestros repositorios y facilita mucho el desarrollo. Funciona de manera muy similar a los comandos grep estándar de Linux, con algunas características específicas de git.

$ git grep -iw 'import' master

Este comando muestra todas las líneas que contienen "importar" en nuestra rama maestra. Busca sin distinguir entre mayúsculas y minúsculas. El siguiente comando buscará el patrón dado en todas las confirmaciones y ramas.

$ git grep 'import' $(git rev-list --all)

Este es uno de los mejores comandos de git para dominar si está colaborando en proyectos a gran escala.

30. Administrar árboles de trabajo

Los desarrolladores pueden trabajar con múltiples árboles de trabajo en git. Esto es útil cuando se revisa más de una sola rama de su proyecto. Consulte los siguientes comandos de git para ver cómo administrar árboles de trabajo en git.

$ git worktree list
$ git worktree add new-branch
$ git worktree remove new-branch
$ git worktree prune

Puede mostrar los árboles de trabajo actuales usando el primer comando. Use el segundo comando para agregar un nuevo "árbol de trabajo vinculado" y el tercer comando para eliminar ese árbol. El comando final le permite podar la información del árbol de trabajo.

31. Eliminar objetos no rastreados

A veces, es posible que desee eliminar objetos que Git ya no rastrea. Git proporciona un comando simple para hacer esto. El comando git prune solo eliminará objetos sin seguimiento de su base de datos de objetos, no las referencias en sí.

$ git prune --dry-run
$ git prune --verbose --progress

El primer comando no elimina nada y solo mostrará los objetos que eliminaría la poda. El segundo comando proporciona una salida detallada, así como un informe de progreso durante el período de eliminación. Puede usar comandos de poda para optimizar sus repositorios junto con el comando git gc.

32. Empaquetar objetos desempaquetados

En git, los paquetes son una colección de objetos comprimidos individualmente. Git aplica compresión delta en estos objetos y los almacena en un solo archivo. Se utilizan para reducir la carga en su sistema de archivos Linux o sistemas espejo. El comando git repack permite a los usuarios crear nuevos paquetes que consisten en objetos que no se encuentran dentro de los paquetes existentes.

$ git repack

Puede usar este comando junto con gic gc y git prune para optimizar sus repositorios de git.

33. Listar objetos desempaquetados

No debe volver a embalar sus objetos con mucha frecuencia a menos que haya demasiados objetos sin embalar. El comando git count-objects es un método simple pero útil para ver la cantidad de objetos desempaquetados y cuánto espacio en disco consumen.

$ git count-objects

Use el comando anterior para determinar si es hora de volver a empaquetar git o no. Puede agregar el –verbose bandera para obtener información detallada y legible para humanos bandera para mostrar el tamaño de una manera convencional.

34. Validar la base de datos de objetos

Git se desarrolló como un sistema de archivos en sus inicios. Tiene un comando útil llamado fsck, que actúa de manera muy similar al fsck de Unix. Puede utilizar este comando para verificar la conectividad y realizar comprobaciones de integridad de sus objetos.

$ git fsck

Ejecutar el comando anterior mostrará cualquier objeto dañado que se encuentre en su base de datos de objetos. Es uno de los comandos de git más útiles para encontrar objetos perdidos o defectuosos.

35. Mostrar cambios para cada confirmación

El comando git whatchanged es otro de nuestros subcomandos favoritos de git. Es una forma simple pero efectiva de ver qué cambios introduce cada confirmación de git individual en nuestro proyecto.

$ git whatchanged

Este comando git mostrará información usando registros de confirmación y salida de diferencias. En general, su funcionamiento es bastante similar al del comando git log.

36. Resumir información de registro

También puede usar el comando git shortlog para ver los historiales. La idea principal detrás de este comando es incluir la salida en los anuncios de lanzamiento. Eche un vistazo rápido al siguiente comando para ver cómo funciona.

$ git shortlog
$ git shortlog --email --summary

Agregar el –correo electrónico La opción mostrará los correos electrónicos de cada autor. El –resumen La opción suprimirá la salida habitual y solo mostrará el número de confirmaciones.

37. Administrar opciones de configuración

Hay una gran cantidad de opciones de configuración disponibles para git. Puede usar el comando git config para consultar, configurar o reemplazar varias opciones. Se pueden realizar cambios tanto en repositorios específicos como en la configuración global.

$ git config --list

El comando anterior enumerará todas las opciones de configuración establecidas actualmente en git. Puede agregar o eliminar fácilmente nuevas opciones. Siga la página de ayuda del subcomando config para aprender a realizar estas tareas.

$ git config --help

38. Consulte la Ayuda de Git

La página de ayuda de git o cualquier otro comando de terminal de Linux proporciona información resumida de todas las opciones disponibles. Debería ser el primer lugar para visitar cuando tenga problemas con git. Eche un vistazo rápido a los siguientes comandos para aprender cómo invocar la página de ayuda de git.

$ git help
$ git --help

Por lo tanto, puede consultar la página de ayuda de git utilizando la –ayuda de estilo Unix opción o el subcomando de ayuda integrado en git. Además, git también proporciona páginas de ayuda para subcomandos.

$ git <command> --help
$ git commit --help

39. Consultar la página del manual

La página de manual contiene información detallada sobre el sistema de control de versiones de git y todos sus subcomandos. Puede verlos siguiendo la siguiente sintaxis.

$ man git
$ man git commit

Por lo tanto, también puede ver manuales para subcomandos individuales como puede hacerlo con la página de ayuda.

40. Mostrar información de la versión

Puede usar el siguiente comando simple para ver qué versión de git está instalada en su sistema. Dado que git ha evolucionado en gran medida con el tiempo, existen diferencias significativas entre las distintas versiones de git.

$ git --version

Simplemente use el comando anterior para obtener la versión específica de git disponible en su máquina.

Pensamientos finales

Git ha consolidado su posición como el sistema de control de versiones de facto gracias a su diseño práctico y conjunto de características diversas. Aunque existen excelentes alternativas como Mercurial y CVS, una gran cantidad de comandos prácticos de git lo hacen más versátil que sus competidores. Nuestros editores han hecho todo lo posible para delinear los comandos más prácticos para usted. Con suerte, ha obtenido los conocimientos esenciales que estaba buscando de esta guía. No dude en hacernos preguntas si tiene dudas con respecto a un comando en particular. Gracias por acompañarnos a lo largo de esta larga guía.


Linux
  1. 16 comandos Tar para comprimir y extraer archivos en Linux

  2. Linux para principiantes:10 comandos más para manipular archivos

  3. 3 comandos útiles de Linux para administradores de sistemas

  4. Comandos de búsqueda de Linux

  5. Utilice Buscar y localizar para buscar archivos en Linux

50 reglas de IPtables útiles y simples para el administrador de Linux

50 comandos dmidecode simples y útiles para Linux

25 comandos de Nginx que deben conocer los desarrolladores y administradores

Los 40 comandos útiles del servidor Linux para principiantes y profesionales

Los 50 comandos IP útiles de Linux para administradores de red

Las 5 mejores distribuciones de Linux para desarrolladores y programadores