tag remove practices crear commits commands best git

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:

  1. 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.

  2. Nota hash del archivo:

    1023057173029091u23f01w276931f7f42595f84f

  3. Muestra el archivo usando el hash. Asegúrate de que sea lo que quieres:

    git show 1023057173029091u23f01w276931f7f42595f84f: ./ myFile.js

  4. Redirigir archivo a una copia local

    git show 1023057173029091u23f01w276931f7f42595f84f: ./ miArchivo.js> miArchivo.07aug2018.js

  5. Copia de seguridad de su archivo actual.

    cp myFile.js myFile.bak.js

  6. Abre ambos archivos en tu editor de texto favorito.

    vim myFile.js
    vim myFile.07aug2018.js

  7. Copie y pegue el código de myFile.07aug2018.js en myFile.js y guárdelo.

  8. Cometer y presionar myFile.js

  9. Vuelva a ver el registro y confirme que su archivo está correctamente colocado.

  10. 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