Como a algunos nos paso, nos vimos en la necesidad de migrar de paradigma de control de versiones, anteriormente yo utilizaba svn el cual tenia varios inconvenientes mismos que no voy a nombrar en este post. El caso es que en el camino podemos cometer varios errores, y git es tan genial que nos permite enmendarlos en cualquier momento.
A continuación presento una lista de los errores que cometí y que después de investigar logre resolver (no sin haber metido la pata un par de veces).
Aqui van:
Modificar el comentario del ultimo commit
Cometi un error o se me olvido agregar algo a la descripción del commit, entonces:
git-commit --amend
Luego solo modifico el comentario
Modificar el ultimo commit
Hice commit de código defectuoso y quiero corregirlo antes del push
emacs ruta/al/archivo #corregir y guardar git-add ruta/al/archivo git-commit -v --amend
Entonces el ammend modificara el ultimo commit sin necesidad de hacer otro.
Quitar un archivo incluido equivocadamente en el ultimo commit
Incluí un archivo en el ultimo commit que no se supone que debería estar ahí (e.g: DS_STORE)
git-reset HEAD^1 ruta/al/archivo #dale con confianza tus cambios no se pierden git-commit --amend -v git-commit -v ruta/al/archivo # hacer el commit con los nuevos cambios
Corregir errores en commits anteriores
Si queremos corregir un error, no necesariamente en el ultimo commit:
git-checkout <hash-commit-malo> ... hacer cambios ... git-commit --amend -v git-rebase --onto HEAD <hash-commit-malo> <hash-del-branch-actual>
bien si después de esto ocurre algún conflicto tendran que resolverlo manualmente, y luego:
git-rebase --continue
Bueno no es que sea gran cosa, pero al menos estos me han salvado de penas en repetidas ocasiones, espero alguien lo encuentre útil también 🙂