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
.