Trucos/Comandos de git que todo desarrollador debería conocer
4 min read

Trucos/Comandos de git que todo desarrollador debería conocer

Trucos/Comandos de git que todo desarrollador debería conocer

Si estas trabajando como Software Developer sabes lo importante que es git en el trabajo, seguramente ya usas los comandos básicos de git en tu día a día. Si no los conocías en el siguiente enlace puedes ver más acerca de estos comandos básicos.

Hoja de referencia para Git de Github
Comandos Básicos de Git

Pero en esta oportunidad vengo a hablarte de otros comandos que quizá no conocías y los cuales te aseguro que mejorarán tu productividad y quien sabe, talvéz algún rato te salven la vida (como dev :)).

1. Agregar todos los cambios a un commit.

Usa este comando para agregar todos los cambios que tienes al commit de una sola vez:

$ git add -A
# o
$ git add .

2. Alternar entre las ultimas dos ramas

Hay ocasiones en donde solo necesitas pasar a una rama por un momento y resulta tedioso escribir una y otra vez el nombre de las ramas, este comando es muy útil para esas situaciones:

$ (master) git checkout develop 
$ (develop) git checkout - 
$ (master) git checkout - 
$ (develop)

3. Revisar el historial

Seguramente ya usaste el comando:

$ git log

Pero ¿sabias que el historial también te puede mostrar todos los cambios realizados en cada commit?, Prueba agregando este argumento al comando anterior:

$ git log -p

diff --git a/apps/courses/entities/chapter_collection.py
index 9b291c8..d819811 100644
--- a/apps/courses/entities/chapter_collection.py
+++ b/apps/courses/entities/chapter_collection.py
 # -*- coding: utf-8 -*-

+from django.utils.decorators import method_decorator
+from django.views.decorators.cache import cache_page
+from django.views.decorators.vary import vary_on_cookie
+
 from rest_framework.generics import ListAPIView
 .....

Cada commit se mostrará con + para las líneas agregadas y - para las lineas eliminadas.

Otra forma muy util de mostrar los logs es:

$ git log --pretty=oneline

Lo que nada mas mostrará el id y el mensaje del commit

4. Editar el mensaje de un commit

El mensaje de un commit estará mucho tiempo en tu código, así que cuando escribes el mensaje de un commit con errores existe la necesidad de editar este mensaje:

$ git commit --amend -m "Tu nuevo mensaje"

En caso de que tu commit ya haya sido enviado a una rama remota, puedes forzar la actualización del mensaje con el siguiente comando:

$ git push <remote> <branch> --force

5. Eliminar una rama local y remota

Eliminar de forma local

$ git branch --delete --force <nombre_de_la_rama>
# or
$ git branch -D

Eliminar la rama remota

$ git push origin --delete <nombre_de_la_rama>

6. Restaurar los cambios del ultimo commit

Deshacer la última confirmación y devolver los cambios a la etapa de preparación (es decir, restablecer la confirmación antes de HEAD)

$ git reset --soft HEAD^

Deshacer la última confirmación y destruir los terribles cambios que realizó (es decir, restablecer la confirmación antes de HEAD)

$ git reset --hard HEAD^

7. Averiguar quién hizo los últimos cambios a un archivo

Este comando es un tanto polémico pero puede ser util en ciertos casos, para determinar en que momento y quién hizo cambios en un archivo o en alguna parte de este.

git blame path/del/archivo

# Esto retorna algo como esto
# 9c83f0e (Victor Aguilar 2020-06-02 16:13:34 -0500  1) [pytest]
# ....
# 9c83f0e (Victor Aguilar 2020-06-02 16:13:34 -0500 16)     black: Run 
# [commit id] (Autor Fecha del cambio Hora Linea) contenido

Por supuesto este comando tiene muchas mas opciones de invocación.

# -L indica la linea de Inicio, Final
$ git blame -L 40,60 path/del/archivo

Hay muchos más argumentos que cambian el comportamiento del comando, estos se pueden revisar en su totalidad en la documentación del comando, el enlace a continuación.

Git - git-blame Documentation

8. Agregar un commit con un solo comando.

Es comando resulta muy util, especialmente para las veces en que resulta tedioso agregar los archivos con los cambios y luego el mensaje del commit.

$ git commit -a -m 'Mensaje del commit'

9. Agregar un archivo que se nos olvido, al ultimo commit

Otro error muy común  es cuando se nos olvida agregar un archivo al cual hicimos cambios de ultimo momento al commit que acabamos de subir a nuestro repositorio remoto

$ git add path/del/archivo
$ git commit - amend

10. Cambiar el nombre de una rama

Si alguna vez has empujado una rama con un nombre incorrecto, puedes solucionarlo con este comando.

Si aún no lo subiste a tu repositorio, bastará con renombrar la rama en tu instancia local:

$ git branch -m bad_name good_name

Donde bad_name es el nombre de la rama que quieres corregir.

En caso de que ya hayas subido la rama a tu repositorio remoto tocará eliminar la rama y volver a subir la rama que acabas de renombrar

$ git push origin --delete bad_name
$ git push origin good_name

Hay muchos más comandos git y maneras de utilizar esta genial herramienta de control de versiones. Uno de los recursos más interesantes para empezar a explorar su uso más a profundidad es la siguiente página, te sugiero que la visites:

Resources to learn Git

Y si hay algún comando o uso de git del cual quieras explorar a profundidad en español, te ruego que me lo hagas saber en los comentarios.