2009-11-03 39 views
24

Al usar Git con TortoiseGit: ¿Alguien sabe cómo revertir un único archivo (o un repositorio completo) a una revisión anterior?Git (TortoiseGit) - ¿Cómo revertir un único archivo a una revisión anterior y luego deshacer la reversión?

Por ejemplo, tengo un repositorio que contiene varios archivos. Un archivo existe en tres revisiones (1; 2; 3). Ahora quiero pasar de la revisión 3 a la 2.

TortoiseGit ofrece una función "Revertir" en el diálogo "Mostrar registro" que permite volver a una revisión específica, pero esto revertirá todo el repositorio en lugar de una fila india.

También una vez que he revertido algo, no tengo ni idea de cómo deshacer la reversión y volver a la última revisión.

Respuesta

14

Desde la línea de comandos: git checkout es probablemente lo que desea.

La documentación muestra un ejemplo de:

$ git checkout master~2 Makefile

para revertir Makefile a dos revisiones de espalda en la rama principal

Desde dentro TortoiseGit (a través del Explorador de Windows) que parece que se puede hacer esto con los siguientes pasos:

  • Navegue en el Explorador a la carpeta donde está el archivo.
  • botón derecho del ratón sobre el archivo que desea revertir, elija Show log en el menú contextual TortoiseGit
  • En la sección superior ("gráfico") seleccione la revisión que tiene la versión del archivo que desea volver a
  • En la tercera sección (lista de archivos) haga clic en el archivo y elegir Revert to this revision
  • que debería recibir un mensaje como 1 files revert to e19a77
  • +2

    Sí tienes razón, esto funciona perfecto con herramientas de línea de comandos git, pero estoy buscando la funcionalidad correspondiente en TortoiseGit que también usa herramientas de línea de comando git en segundo plano. – Alexander

    +0

    Parece que no es posible con la versión actual de TortoiseGit. – Alexander

    +3

    Creo que lo descubrí con TortoiseGit, vea la respuesta editada. – mlibby

    18

    En TortoiseGit la respuesta es hacer clic derecho en la carpeta del proyecto y haga clic en Mostrar registro, a continuación, haga clic derecho en el cambio al que desea retroceder y cl Haga clic en Cambiar/Finalizar a esto .... Le permitirá entonces proceder desde ese lugar extraño en la pila de compromisos, o rama en caso de que planee comprometerse y desee que las cosas permanezcan sanas.

    +1

    Creo que va a cambiar todo el proyecto – quangkid

    6

    actualizado mi respuesta, en base a estos comentarios:


    Supongamos que el árbol de trabajo está limpio y que desea:

    1. Pedido algún archivo (s) de su revisión anterior
    2. Prueba
    3. Vuelva a la revisión actual

    1. Pedido algún archivo (s) de su revisión anterior

      (a) Haga clic derecho en el archivo que desee revertir y Mostrar registro para ese archivo

      enter image description here

      (b) Haga clic con el botón derecho en el archivo en la lista de archivos y realice Vuelva a la revisión principal

      enter image description here

      enter image description here

      (c) repetir (a), (b) hasta que obtenga todos los archivos que desea.

      enter image description here

    2. Prueba

    3. Revertir a la versión actual

      (a) realizar Revert ... en el menú contextual del Explorador de

      De esta manera, se puede elegir la archivo (s) que desea revertir.

      (b) de esta manera rápida: realizar Hard Reset de diálogo de Registro

      De esta manera, todos los archivos modificados revierten. (=> ¿Ha perdido todos los cambios de directorio de trabajo)

      enter image description here

      enter image description here

    (Probado en TortoiseGit 1.8.16.1, 2.6.4.windows GFW.1, Win 10 de 64 bits)

    +0

    Esto es incorrecto. ¿Qué versión de TortoiseGit es esto? No creo que "Revertir a la revisión principal" esté presente. Revertir es para destruir los cambios del espacio de trabajo local. La pregunta aquí es pedir retroceder a una versión anterior y volver a la versión actual más adelante, no destruir la versión actual. –

    +0

    La función Revertir todavía está haciendo algo diferente de lo que el asker estaba buscando. –

    4

    También es posible obtener un archivo específico:

    • Haga clic derecho en el archivo
    • el punto de menú: Git Mostrar registro

    TortoiseGit mostrar un cuadro de diálogo con una lista de todas las revisiones

    • Haga clic en la revisión anterior (2)

    En una lista en la parte inferior del cuadro de diálogo que muestra todos los archivos asociados a la confirmación

    • Encuentre el archivo que está buscando para ver
    • Haga clic derecho en el archivo y Guardar revisión
    • Esto ahorrará esa revisión anterior del archivo con el número cometer concatenado en el archivo

    Por ejemplo: - archivo original es un archivo .txt - Revisión 2 guardará como archivo-67b51a8.txt

    estoy usando TortoiseGit v2.2.0.0

    +0

    ¡Esta es la mejor respuesta! las otras respuestas son probablemente para versiones anteriores de TortoiseGit antes de agregar esta funcionalidad. – Justin

    0

    Para tortuga Versión 2.3.0:

    usted puede hacerlo de varias maneras , pero más rápido que pienso es que:

    1. Haga clic derecho sobre el archivo
    2. Haga clic en la opción de menú "Comparar con la revisión anterior"
    3. Haga clic derecho sobre la la izquierda (anterior) versión del archivo
    4. Haga clic en la opción de menú "Use todo este archivo"
    5. Guarde los cambios (ctrl + s)
    Cuestiones relacionadas