remove - git tag commits
Restablecimiento completo de un solo archivo (6)
Actualmente tengo tres archivos modificados en mi directorio de trabajo. Sin embargo, quiero que uno de ellos se restablezca al estado HEAD.
En SVN usaría svn revert <filename>
(seguido de svn update <filename>
si es necesario) pero en git debería usar git reset --hard
. Sin embargo, este comando no puede operar en un solo archivo.
¿Hay alguna forma en git para descartar un solo archivo de cambios y sobrescribirlo con una copia HEAD nueva?
Restablecer a la cabeza:
Para restablecer un solo archivo a HEAD:
git checkout @ -- myfile.ext
Tenga en cuenta que @
es la abreviatura de HEAD
. Es posible que una versión anterior de git no admita la forma abreviada.
Restablecer al índice:
Para restablecer por hardware un solo archivo en el index , asumiendo que el índice no está vacío, de lo contrario a HEAD:
git checkout -- myfile.ext
El punto es que para estar seguro, no querrá omitir @
ni HEAD
del comando a menos que tenga la intención específica de restablecer solo el índice.
Para revertir a upstream / master hacer:
git checkout upstream/master -- myfile.txt
Puedes usar el siguiente comando:
git reset -- my-file.txt
que actualizará tanto la copia de trabajo de my-file.txt
cuando se agregue.
Puedes usar el siguiente comando:
git checkout HEAD -- my-file.txt
... que actualizará tanto la copia de trabajo de my-file.txt
como su estado en el índice con la de HEAD.
--
básicamente significa: tratar cada argumento después de este punto como un nombre de archivo . Más detalles en esta respuesta . Gracias a VonC por señalar esto.
Una forma simple, fácil, práctica, de sacarte del agua caliente, especialmente si no estás tan cómodo con git:
Ver el registro de su archivo
git log myFile.js
commit 1023057173029091u23f01w276931f7f42595f84f Autor: kmiklas Fecha: mar 7 de agosto 09:29:34 2018 -0400
JIRA-12345 - Refactor con nueva arquitectura.
Nota hash del archivo:
1023057173029091u23f01w276931f7f42595f84f
Muestra el archivo usando el hash. Asegúrate de que sea lo que quieres:
git show 1023057173029091u23f01w276931f7f42595f84f: ./ myFile.js
Redirigir archivo a una copia local
git show 1023057173029091u23f01w276931f7f42595f84f: ./ miArchivo.js> miArchivo.07aug2018.js
Copia de seguridad de su archivo actual.
cp myFile.js myFile.bak.js
Abre ambos archivos en tu editor de texto favorito.
vim myFile.js
vim myFile.07aug2018.jsCopie y pegue el código de myFile.07aug2018.js en myFile.js y guárdelo.
Cometer y presionar myFile.js
Vuelva a ver el registro y confirme que su archivo está correctamente colocado.
Dígales a sus clientes que obtengan lo último, que felizmente lo verán funcionando con la versión antigua en su lugar.
No es la solución más sexy o más centrada en el git, y definitivamente un restablecimiento / reversión "manual", pero funciona. Requiere un conocimiento mínimo de git, y no perturba el historial de confirmación.
puede utilizar el siguiente comando para restablecer un solo archivo
git checkout HEAD -- path_to_file/file_name
Listar todos los archivos modificados para obtener path_to_file/filename
con el siguiente comando
git status