Ya edito algunos files en mi repository y los presiono.
Después de algún otro trabajo, noté que mantengo una línea comentada.
Por lo tanto, no quiero crear un nuevo compromiso para él y quiero cambiarlo en la confirmación anterior (no es la última confirmación).
Creo que puedo usar el ID de confirmación, pero no sé cómo o quizás Git no tolere esta característica.
Puedes hacer una rebase en modo interactivo:
git rebase -i HEAD~10
Git le indicará una list de confirmaciones, y las más antiguas se mostrarán primero:
... pick ab89k22 Old commit pick ml9826x Another old commit pick xke82ml This is the commit you want to edit pick aow82md Here is your latest commit
Encuentre la confirmación que desea editar y cambie la pick
de pick
para edit
:
edit xke82ml This is the commit you want to edit
Luego guarde el file y salga. Git comenzará ahora la rebase y se detendrá en la confirmación que desee editar, lo que le permitirá realizar cambios. Una vez que haya terminado de hacer esos cambios, puede escribir
git add path/to/file
para cada file que modificó, y luego escriba
git rebase --continue
para terminar la rebase
Tenga en count que al editar esta confirmación en su sucursal local, efectivamente ha reescrito el historial. Esto significa que cuando presione hacia el control remoto, tendrá que forzar la ramificación, usando --force
en su command git push
:
git push origin master --force
Tenga cuidado de que la reescritura del historial remoto pueda ser peligrosa dependiendo de quién también esté compartiendo esta twig con usted.
Si no desea reescribir el historial remoto, entonces una apuesta más segura sería agregar un nuevo compromiso a su sucursal. También puede eliminar la confirmación en cuestión usando git revert
y luego agregar los cambios que desea conservar.
¡No!
Como señala Tim: es peligroso reescribir el historial remoto.
Simplemente acepte que cometió un error (y no haya probado su código a background antes de presionarlo), corrija su error y realice una nueva confirmación con el post
amend <COMMIT_HASH_YOU_WANT_TO_FIX>
Si está usando un visor de historia medio decente, generará un enlace de <COMMIT_HASH_YOU_WANT_TO_FIX>
por lo que podría saltar fácilmente a la confirmación errornous.