¿Existe la posibilidad de revertir un archivo comprometido en Git? Envié una confirmación en GitHub y luego me di cuenta de que hay un archivo que no quería que se enviara (no he terminado los cambios).
¿Existe la posibilidad de revertir un archivo comprometido en Git? Envié una confirmación en GitHub y luego me di cuenta de que hay un archivo que no quería que se enviara (no he terminado los cambios).
Respuestas:
actualización: método más seguro agregado
verifique el estado anterior (sin cambios) de su archivo; nota el guión doble
git checkout HEAD^ -- /path/to/file
cometerlo:
git commit -am "revert changes on this file, not finished with it yet"
empujarlo, no se necesita fuerza:
git push
vuelve a tu trabajo inconcluso, hazlo de nuevo (flecha 3 veces hacia arriba)
git checkout HEAD^ -- /path/to/file
Para modificar la última confirmación del repositorio HEAD, ofuscando su trabajo accidentalmente empujado, mientras potencialmente se enfrenta a un conflicto con su colega que ya puede haberlo retirado, y que crecerá el cabello gris y perderá mucho tiempo tratando de reconciliar su jefe de sucursal local con el central:
Para eliminar el cambio de archivo de la última confirmación:
para revertir el archivo al estado anterior a la última confirmación, haga lo siguiente:
git checkout HEAD^ /path/to/file
para actualizar la última confirmación con el archivo revertido, haga:
git commit --amend
para enviar la confirmación actualizada al repositorio, haga lo siguiente:
git push -f
Realmente, considere usar el método preferido mencionado anteriormente.
git checkout HEAD~2 /path/to/file
? Editar: Parece que lo que quería en mi caso era simplementegit rm /path/to/file
Si desea eliminar el archivo del repositorio remoto, primero elimínelo de su proyecto con la opción --cache y luego empújelo:
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(Esto funciona incluso si el archivo se agregó al repositorio remoto hace algunas confirmaciones) Recuerde agregar a .gitignore las extensiones de archivo que no desea enviar.
Puede revertir solo un archivo a una revisión específica.
Primero puede verificar en qué confirmaciones se modificó el archivo.
git log path/to/file.txt
Luego puede retirar el archivo con el número de revisión.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
Después de eso, puedes comprometerte y presionarlo nuevamente.
Restablezca el archivo en un estado correcto, confirme y vuelva a presionar.
Si está seguro de que nadie más ha obtenido sus cambios todavía, puede usarlos --amend
al confirmar, para modificar su compromiso anterior (es decir, reescribir el historial) y luego presionar. Sin -f
embargo, creo que tendrás que usar la opción al empujar, para forzar el empuje.
Obtén el código hash de la última confirmación.
git log
git revert <hash_code_from_git_log>
git push
echa un vistazo en el GHR. puede obtener lo que necesita, espero que esto sea útil