GIT: Los principales comandos que debes conocer para dominar la CLI de Git

Vamos a aprender los principales comandos de Git más esenciales para aumentar su productividad y convertirte en un maestro en la administración de los repositorios de Git, tanto en GitHub como en Gitlab.

Git logo

¿Qué es Git?

Git es el sistema de control de versiones distribuido más popular del mundo.

Linus Torvalds, el creador del kernel de Linux, construyó esta herramienta en 2005, que actualmente es un proyecto de código abierto que se mantiene activamente.

Una gran cantidad de proyectos comerciales y de código abierto confían en Git para el control de versiones.

Comandos de Git

En este artículo, enumeraré los comandos más esenciales que debes de conocer para convertirte en un maestro en el manejo de sus repositorios de GitHub.

También puedes echarle un vistazo al post con los principales alias de Git que te puedes configurar.

1. Configurar nombre y email en Git

El nombre de usuario es necesario para vincular los commit a tu nombre.

No es lo mismo que el nombre de usuario de tu cuenta de GitHub.

Puedes configurar o actualizar el nombre de usuario mediante el comando git config.

El nuevo nombre se reflejará automáticamente en cualquier commit futuro que se envíe a GitHub desde la línea de comandos. Si desea ocultar su nombre real, puede usar cualquier texto arbitrario como su nombre de usuario de Git.

git config --global user.name "Juanra"

También podemos usar el comando git config para actualizar la dirección de correo electrónico que desea asociar con sus commit de Git.

La nueva dirección de correo electrónico se reflejará automáticamente en cualquier commit futuro que envíe a GitHub desde la línea de comandos.

git config --global user.email "[email protected]" 

2. Almacenar en caché las credenciales de inicio de sesión

Puede almacenar en caché las credenciales de inicio de sesión mediante el parámetro de configuración y la marca –global. Ayuda a evitar volver a escribir el nombre de usuario y la contraseña cada vez que realiza una confirmación.

git config --global credential.helper cache 

3. Inicializar un repositorio

Puede crear un repositorio Git vacío o reinicializar uno existente utilizando el parámetro init. Eso creará un directorio oculto tras la inicialización. Este directorio contiene todos los objetos y referencias que Git usa y crea como parte del historial de su proyecto.

git init 

4. Agregar archivo individual o todos los archivos al área de prueba

Podemos agregar un solo archivo al área de prueba utilizando el parámetro agregar y el nombre del archivo. Simplemente reemplazando el archivo somefile.js con su nombre de archivo.

git add somefile.js

También podemos agregar todos los archivos y directorios al área de prueba proporcionando el comodín . en lugar del nombre del archivo.

git add . 

5. Verificar el estado de un repositorio

Podemos ver el estado del repositorio actual utilizando la palabra clave status, que incluye los archivos en etapas, sin etapas y sin seguimiento.

git status

6. Confirmar cambios con un mensaje de una sola línea

Podemos agregar un mensaje de una sola línea mientras realiza una confirmación en su repositorio utilizando el parámetro de commit y el indicador -m.

Este mensaje debe seguir inmediatamente a la bandera y estar entre comillas.

git commit -m "descripción de la tarea" 

También puede abrir un editor de texto en la terminal para escribir un mensaje de confirmación completo. Este mensaje puede contener texto de varias líneas para permitirle explicar los cambios realizados en un repositorio de forma detallada.

git commit 

7. Ver el historial de commits con cambios

Podemos ver los cambios realizados en el repositorio utilizando el parámetro log.

Mostrará una lista de commits más recientes en orden secuencial. También puede verificar los cambios detallados de cada archivo agregando el indicador -p.

git log -p

8. Ver un commit en particular

Podemos ver los cambios detallados de de un commit específico.

Utilizando el parámetro show y proporcionando el ID o hash de la confirmación.

Este hash es único para cada commit del repositorio.

git show 1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29 

9. Ver los cambios realizados antes hacer el commit

Puede ver la lista de cambios realizados en su repositorio utilizando el parámetro diff.

git diff 

Si desea ver los cambios en stage, puede agregar la marca –staged.

git diff --staged 

También puede proporcionar un nombre de archivo como parámetro para ver solo los cambios de un archivo específico.

git diff somefile.js 

10. Eliminar archivos rastreados de la rama actual

Puede eliminar archivos del árbol de trabajo actual utilizando el parámetro rm. Esta acción también eliminará los archivos del índice.

git rm dirname / somefile.js 

También puede proporcionar archivos globales (por ejemplo, * .js) para eliminar todos los archivos coincidentes.

git rm dirname / . html 

11. Cambiar el nombre de los archivos

Puede cambiar el nombre de un archivo o directorio utilizando el parámetro mv.

La fuente debe existir y puede ser un archivo o directorio, y el destino debe ser un directorio existente.

git mv dir1 / somefile.js dir2 

La ejecución del comando anterior moverá las fuentes al directorio de destino. El índice se actualizará, pero debemos confirmar los cambios.

12. Deshacer archivos preparados para commit

Para restaurar un archivo preparado para commit, podemos usar el parámetro reset.

Debemos proporcionar una ruta de archivo para eliminarlo del área de preparación de commit.

Esto no eliminará los cambios o modificaciones realizados en los archivos, en su lugar, el archivo se considerará como un archivo modificado pero no añadido para el commit.

git reset HEAD somefile.js 

Si desea eliminar todos los archivos preparados para commit, no proporcione la ruta del archivo.

git reset HEAD 

13. Modificar el último commit

Podemos realizar cambios al último commit utilizando el indicador –amend.

Por ejemplo, acaba de enviar algunos archivos y recuerda que ha cometido un error en su mensaje de confirmación. En tal escenario, ejecutar este comando para editar el mensaje de la confirmación anterior sin modificar los ficheros.

git commit --amend -m "Mensaje actualizado" 

También es posible realizar cambios en los archivos confirmados previamente.

Por ejemplo, ha actualizado algunos archivos en varias carpetas que desea confirmar en una sola instantánea, pero luego olvidó agregar una carpeta para confirmar. Arreglar este tipo de error es solo una cuestión de preparar los otros archivos o carpetas y comprometerse con los indicadores –amend y –no-edit.

git add dir1 git commit 

# Aquí olvidó agregar dir2 para confirmar, puede ejecutar el siguiente comando para modificar los otros archivos y carpetas.

git add dir2 git commit --amend --no-edit 

El indicador –no-edit nos permite modificar el commit sin modificar ficheros.

¡¡¡Cuidado!!! Esto nos obliga a reescribir la historia de commits.

14. Deshacer el último commit

git revert HEAD

Revert versus Reset

El comando git revert solo deshace un commit. No regresa al estado anterior ni deshace los commit entre medias, lo que se realiza cuando se usa git reset.

Revert tiene dos beneficios principales sobre reset. Primero, no altera el historial del proyecto, lo que la convierte en una operación segura para los commits. En segundo lugar, puede apuntar a un commit concreto en cualquier momento del historial, mientras que git reset solo puede funcionar hacia atrás desde el último commit.

Por ejemplo, si desea deshacer un commit anteriorcon git reset, tendrá que eliminar los commit que ocurrieron después del que estamos volviendo y luego volver a procesar los commit posteriores.

Por lo tanto, git revert es una forma mucho mejor y más segura de deshacer los cambios.

15. Deshacer un commit en particular

Puede retrotraer a una confirmación en particular utilizando el parámetro revert y el ID de confirmación. Creará una nueva confirmación, una copia de la ID de confirmación proporcionada y la agregará al historial de la rama actual.

git revert 1af17e 

16. Crear y cambiar a una nueva rama

Para crear una nueva rama utilizamos git branch new_branch_name

Pero Git no lo cambiará automáticamente.

Si desea que Git cambie automáticamente, debe pasar checkout -b .

git checkout -b new_branch_name 

17. Ver todas las ramas locales

Esto nos marcara con * la rama actual.

git branch 

Para ver las ramas locales y remotas usamos -a.

git branch -a 

18. Eliminar una rama

git branch -d existing_branch_name 

Para eliminar la rama a la fuerza podemos usar -D

Esto eliminará la rama a pesar de su estado actual y sin ninguna advertencia.

git branch -D existing_branch_name 

Los comandos anteriores solo eliminarán una copia local de la rama.

La rama puede existir en el repositorio remoto. Si desea eliminar una rama remota, ejecute el siguiente comando.

git push origin --delete existing_branch_name

19. Fusionar dos ramas

Para combinar una rama en la rama principal que estamos necesitamos usar merge y el nombre de la rama. Esto nos generará un nuevo commit de mergeo.

git merge existing_branch_name 

20. Ver commits de manera gráfica

Podemos ver el log de commits de manera gráfica.

Principalmente para la rama actual usando –graph y –decorate. También usamos –all para ver todos los commit y –online para identificar más fácilmente cada commit.

git log --all --graph --oneline --decorate 

21. Abortar un commit con conflictos

Podemos cancelar el merge si añadimos –abort.

También si usamos el comando git reset tendremos el mismo resultado.

get reset
git merge --abort

22. Agregar un repositorio remoto

Puede agregar un repositorio remoto usando el parámetro add remoto, y el del repositorio remoto.

git remote add awesomeapp https://github.com/someurl .. 

23. Ver URL remotas del repositorio

Esto mostrará una lista de las conexiones remotas que tiene a otros repositorios.

git remote -v 

El comando anterior es una interfaz para administrar una lista de entradas remotas que se almacenan en el archivo .git / config del repositorio.

24. Información sobre un repositorio remoto

git remote show origin 

El comando anterior generará una lista de las ramas que están asociadas con el repositorio remoto y también las ramas conectadas.

25. Subir cambios al repositorio

Para enviar cambios a un repositorio remoto utilizado push con el nombre del repositorio y la rama.

git push origin main 

26. Descargar los cambios del repositorio

Nos descargará la copia de la rama actual y la actualizaá con la rama local.

git pull 

También puede ver los detalles de los archivos que se han descargado, mediante el uso de –verbose.

git pull --verbose

27. Fusionar repositorio remoto con repositorio local

Puedes fusionar un repositorio remoto con tu repositorio local usando el parámetro merge y el nombre del remoto.

git merge origin

28. Enviar una nueva rama al repositorio remoto (O hacer un push)

Podemos enviar una nueva rama a un repositorio remoto usando el parámetro push, el indicador -u, el nombre del remoto y el nombre de la rama.

git push -u origin new_branch 

29. Eliminar una rama remota

Se puede eliminar una rama remota utilizando el parámetro push, y el atributo–delete y el nombre de la rama.

git push --delete origin existing_branch 

30. Rebase

Rebasear es un proceso para combinar o mover una secuencia de commits a uno solo diferente.

Git logra esto creando nuevos commit sobre el commit base elegido.

Hay que entender que esto modifica el historial de la rama y vamos a necesitar hacer un commit y un push –force para actualizar los cambios en el repositorio.

¡¡¡¡Enhorabuena!!!!

¡Enhorabuena! Ya sabes algunos de los principales comandos que ofrece la CLI de Git.

A practicar los comandos aprendidos y a hacerse un ninja de Git.

Comparte 🙂

Si te ha gustado el contenido de este artículo no te olvides de compartirlo ya que con eso me harías muy feliz. GRACIAS 😉

Participa 😉

Además de todo ello, si tienes dudas o puedes aportar algo con un comentario, no dudes en hacerlo. GRACIAS 😉

¿Y tú qué opinas?

Antes de participar en los comentarios, ten en cuenta que leeré personalmente cualquier cosa que escribas. Así que, por favor, mantén las formas y compórtate como una persona de bien.

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>