Git tips

En este post vamos a ver algunos comandos útiles para el trabajo diario cuando usamos git.

Crear una nueva rama y cambiar a esa rama

git checkout -b nombre_rama

Regresar a la rama anterior

git checkout -

Actualizar la información de las ramas remotas

Si queremos probar una rama debemos actualizar la información de las ramas remotas

git fetch origin

Esto nos mostrará las nuevas ramas existentes en origin y podremos hacer un checkout a la que queramos

Sobreescribir el último commit

git commit --amend

Esto creará un nuevo commit con los cambios del último commit permitiendonos cambiar el mensaje del mismo y los cambios hechos.

Deshacer todos los cambios del area de trabajo

git checkout -- .

Deshacer los cambios de un archivo en particular

git checkout -- path_to_file

Deshacer el último commit

Esto deshace el commit pero mantiene los cambios en el area de staging

git reset --soft HEAD~

Si queremos deshacer mas de un commit usamos el mismo comando pero indicandole cuantos commits queremos deshacer, n es la cantidad de commits

git reset --soft HEAD~n

Quitar los cambios del area de staging

Sería lo contrario a un git add path_to_file

git reset HEAD

Actualizar una rama compartida remota

git pull --rebase origin nombre_de_rama

Esto es importante para evitar hacer un "merge commit" innecesario, lo que hace este comando es descargar y aplicar los cambios que hace en origin y luego de eso aplicar nuestros cambios.

Actualizar nuestra rama con los cambios de otra rama

Por ejemplo queremos enviar cambios pero debemos actualizar nuestra rama con los cambios de la rama develop

git checkout develop
git pull origin develop
git checkout mi_rama
git rebase develop

Tener en cuenta de que haciendo esto estamos cambiando la historia de nuestra rama por lo que cuando vayamos a subir los cambios debemos forzar el push con:

git push -f origin mi_rama

Git reflog

No es un comando que haga algo en particular sino un historial de todas las acciones hechas en el repositorio, es decir si por error ejecutamos algo que no debimos(suele pasar 😅) podemos regresar a un punto anterior gracias a git reflog.