Eliminar commits en remoto que no queremos conservar
Con tig
podemos ver el hash del commit.
Lo primero que debes hacer es hacer un reset
hasta el último commit válido a mantener:
git reset --hard [número_de_commit]
donde [número_de_commit]
es el hash del commit al cual quierés volver.
Luego hay que hacer un nuevo push
con la opción -f
para forzar la sobreescritura del historial.
git push -f origin
Si es la rama master
hay que darle permiso al repositorio para forzar una reescritura, porque está protegida por defecto. Para editar esto hay que ir a Settings > Repository > Branchrules > toggler allow force push.
Commits específicos
Para poder hacer commits específicos en lugar de subir todo el mogollón en un solo commit (incluyendo archivos que no tienen nada que ver) una opción es usar git add -p ARCHIVOS
, donde -p
hace que vaya preguntando cambio por cambio cuál queremos agregar al commit que vamos a hacer.
Parches
Si nos pregunta si queremos aceptar un parche que tiene varios cambios al mismo tiempo, en lugar de poner e
y editarlo, podemos poner s
y separa el parche en secciones más chicas.
Cambiar de ramas
Para cambiar de rama se recomienda usar git switch
(en lugar de git checkout
).
Si metimos la pata con una rama (ej. nos olvidamos de poner la rama base en el switch y la empezamos desde testing), siempre podemos empezar una nueva:
git switch -c issue-X-2 master
También sirve para moverse entre ramas:
git switch panel.testing.sutty.nl
git switch rails
git switch issue-X