Tengo un proyecto en el que corrí git init. Después de varias confirmaciones, hice lo git statusque me dijo que todo estaba actualizado y que no había cambios locales.
Luego hice varios cambios consecutivos y me di cuenta de que quería tirar todo y volver a mi estado original. ¿Este comando lo hará por mí?
git reset --hard HEAD
fuente

git checkout path/to/filesolo revertirá los cambios locales apath/to/filegit checkout .ygit reset [--hard HEAD]no funcionó, tuve que hacer ungit clean -fdpara revertir mis cambios.git resetno restablece tus cambios,git reset --hardhace eso.Nota: es posible que también desee ejecutar
como
será no eliminar archivos sin seguimiento, donde como git-limpio se eliminarán todos los archivos del directorio raíz orugas que no están bajo el seguimiento de git. ADVERTENCIA: ¡TENGA CUIDADO CON ESTO! Es útil ejecutar primero una ejecución en seco con git-clean, para ver qué eliminará.
Esto también es especialmente útil cuando recibe el mensaje de error
Lo que puede ocurrir al hacer varias cosas, una es actualizar una copia de trabajo cuando usted y su amigo han agregado un nuevo archivo con el mismo nombre, pero él lo ha confiado primero en el control de origen y no le importa eliminar su copia no rastreada .
En esta situación, hacer una ejecución en seco también ayudará a mostrarle una lista de archivos que se sobrescribirán.
fuente
Re-clonar
.gitignore(como archivos de compilación).gitignoreLos siguientes son otros comandos que olvido a diario.
Limpiar y reiniciar
.gitignore(como archivos de compilación).gitignoreLimpiar
.gitignore(como archivos de compilación).gitignoreReiniciar
.gitignore(como archivos de compilación).gitignoreNotas
Caso de prueba para confirmar todo lo anterior (use bash o sh):
Ver también
git revertpara hacer nuevos compromisos que deshacen los compromisos anterioresgit checkoutretroceder en el tiempo a confirmaciones anteriores (puede requerir ejecutar primero los comandos anteriores)git stashigual que elgit resetanterior, pero puedes deshacerlofuente
git clean -f -d -x: si se especifica la opción -x, los archivos ignorados también se eliminan. Esto puede, por ejemplo, ser útil para eliminar todos los productos de compilación.- de los documentos de GITSi desea revertir todos los cambios Y estar actualizado con el maestro remoto actual (por ejemplo, encuentra que el HEAD maestro ha avanzado desde que se bifurcó y su empuje está siendo 'rechazado') puede usar
fuente
originengit reset --hard origin/master(que funciona) - sin él (es decirgit reset --hard) nada parece haber cambiado.Mira en git-reflog. Enumerará todos los estados que recuerda (el valor predeterminado es 30 días), y puede simplemente retirar el que desee. Por ejemplo:
fuente
git rebase -ihabía salido mal (terminó borrando algunas confirmaciones debido a un error de edición). Gracias a este consejo, he vuelto a estar en buen estado.PELIGRO ADELANTE: (lea los comentarios. Ejecutar el comando propuesto en mi respuesta podría eliminar más de lo que desea)
para eliminar completamente todos los archivos, incluidos los directorios que tuve que ejecutar
fuente
Después de leer un montón de respuestas y probarlas, he encontrado varios casos extremos que a veces no limpian completamente la copia de trabajo.
Aquí está mi script de bash actual para hacerlo, que funciona todo el tiempo.
Ejecutar desde el directorio raíz de la copia de trabajo.
fuente
error: pathspec 'HEAD' did not match any file(s) known to git.git checkout HEADgit reset --hardrevierte los archivos rastreados (por etapas o no),git clean -f -delimina los archivos no rastreados ,git checkout -- HEAD¿por qué necesitamos esto entonces?simplemente ejecute
eliminará todos tus cambios locales. y también puedes usarlo más tarde ejecutando -
fuente
git stash popeliminaría automáticamente el cambio oculto más alto para ustedgit stash droppara eliminar el último estado oculto sin aplicar a la copia de trabajo.Me encontré con un problema similar. La solución es usar
git logpara buscar qué versión de la confirmación local es diferente de la remota. (Por ejemplo, la versión es3c74a11530697214cbcc4b7b98bf7a65952a34ec).Luego use
git reset --hard 3c74a11530697214cbcc4b7b98bf7a65952a34ecpara revertir el cambio.fuente
Busqué un problema similar,
Quería tirar los compromisos locales:
También lo hizo a continuación:
Cheque:
ahora se pierden las confirmaciones locales, de vuelta al estado clonado inicial, punto 1 anterior.
fuente
Es posible que no necesariamente desee / necesite guardar su trabajo / archivos en su directorio de trabajo, sino simplemente deshacerse de ellos por completo. El comando
git cleanhará esto por ti.Algunos casos de uso comunes para hacer esto serían eliminar cruft generado por fusiones o herramientas externas o eliminar otros archivos para que pueda ejecutar una compilación limpia.
Tenga en cuenta que querrá ser muy cauteloso con este comando, ya que está diseñado para eliminar archivos de su directorio de trabajo local que NO ESTÁN SEGUIDOS. si de repente cambia de opinión después de ejecutar este comando, no hay vuelta atrás para ver el contenido de los archivos que se eliminaron. Una alternativa más segura es ejecutar
git stash --allque eliminará todo pero lo guardará todo en un alijo. Este alijo puede luego ser utilizado.
Sin embargo, si realmente desea eliminar todos los archivos y limpiar su directorio de trabajo, debe ejecutar
git clean -f -dEsto eliminará cualquier archivo y también cualquier subdirectorio que no tenga ningún elemento como resultado del comando. Una cosa inteligente que hacer antes de ejecutar el
git clean -f -dcomando es ejecutarque le mostrará una vista previa de lo que se eliminará después de ejecutar
git clean -f -dAquí hay un resumen de sus opciones, desde la más agresiva hasta la menos agresiva
Opción 1 : eliminar todos los archivos localmente (más agresivo)
Opción 2 : Vista previa del impacto anterior (Vista previa más agresiva)
Opción 3 : ocultar todos los archivos (menos agresivo)
fuente
Pruebe esto para revertir todos los cambios no confirmados en la sucursal local
Pero si ves un error como este:
Puede navegar a la carpeta '.git' y luego eliminar el archivo index.lock:
Finalmente, ejecute nuevamente el comando:
fuente
Esta pregunta es más sobre restablecer / revertir un repositorio más amplio, pero en caso de que esté interesado en revertir el cambio individual, he agregado una respuesta similar aquí:
https://stackoverflow.com/a/60890371/2338477
Respuestas a preguntas:
Cómo revertir el cambio individual con o sin cambio conservando en el historial de git
Cómo volver a la versión anterior para reiniciar desde el mismo estado
fuente