Un listado de comandos habituales.
Desahacer el último commit en local
- git reset --soft HEAD~1:
- Este comando retrocede el HEAD del repositorio al commit anterior, pero mantiene los cambios del último commit en el área de preparación (staging area). Es decir, los cambios que habíamos hecho y que estaban incluidos en el último commit ahora estarán listos para ser agregados a un nuevo commit si así lo deseamos.
- git reset --soft HEAD:
- Este comando quita los archivos del área de preparación, pero mantiene los cambios en ellos. Es decir, los archivos no estarán marcados para ser incluidos en el próximo commit, pero los cambios realizados en los archivos permanecerán en nuestro espacio de trabajo.
Deshacer un commit en un repositorio remoto
1. Deshacer el commit sin conservar los cambios localmente:# Volvemos al commit anterior y descartamos los cambios realizados en el commit deshecho
git reset --hard HEAD~1
# Forzamos el envío al repositorio remoto para reflejar la reversión
git push origin HEAD --force
Esto eliminará el commit de la historia local y remotamente. Esto puede afectar a otros desarrolladores si ya han basado su trabajo en este commit, por lo que es importante comunicarles la acción.
2. Deshacer el commit pero conservar los cambios localmente:
Si deseas deshacer el commit pero mantener los cambios en tu área de trabajo (staging) para hacer modificaciones o simplemente no perderlos, seguimos estos pasos:
# Volvemos al commit anterior pero mantenemos los cambios realizados en el commit deshecho en el área de trabajo
git reset --soft HEAD~1
# Realizamos los cambios necesarios y hacemos un nuevo commit
git commit -m "Nuevo mensaje de commit"
# Forzamos el envío del nuevo commit al repositorio remoto
git push origin HEAD --force
Este enfoque es menos destructivo, ya que conserva los cambios pero reescribe la historia, lo cual también puede tener implicaciones si otros desarrolladores ya han basado su trabajo en el commit que se deshizo.
Importante:
Forzar el envío (--force): Esto sobrescribe la historia en el repositorio remoto. Es crucial asegurarse de que nadie más haya trabajado en ese commit para evitar conflictos.
Parches
- Descargar y aplicar un parche:
curl -O
https://www.drupal.org/files/[patch-name].patch
git apply --index [patch-name].patch
En una sola línea:curl
https://www.drupal.org/files/[patch-name].patch
| git apply --index -