Eclipse git checkout (también conocido como revertir)

139

¿Es posible hacer el equivalente git checkoutdesde dentro de Eclipse usando el complemento EGit?

Tengo un archivo que ha sido modificado. Quiero descartar los cambios y revertir el archivo a lo que está en el repositorio de origen. En Subversion esto se llama revertir. En git el equivalente es el pago y envío.

No puedo encontrar ningún elemento de menú en Equipo que parezca finalizar la compra o revertir. Estoy usando EGit 0.6.0.

Steve Kuo
fuente
66
git apesta! No le mostrará lo que está a punto de revertir antes de revertirlo. Subversion le dará una buena ventana de confirmación con una lista de los archivos que está a punto de revertir. Por lo tanto, puede elegir cuáles desea revertir o cancelar en el acto. Vergüenza en el super poderoso git.
JohnPristine
55
@JohnPristine El complemento git de Eclipse (egit) es el que mostraría una ventana de confirmación, en lugar de git en sí.
Brad Cupit
Haga clic derecho en el archivo que desea revertir, luego seleccione "Sobrescribir". Y estoy de acuerdo, Git apesta.
DhafirNz
En 2016, eGit versión 4.5.0 no veo 'Sobrescribir'. Parece ahora ser 'Reemplazar con ...' 'Revisión de HEAD'
Ed Randall

Respuestas:

274

Esto se puede hacer a través del menú contextual "Reemplazar con / Archivo en índice Git" en el archivo en la vista de paquete.

Sergii Rudchenko
fuente
55
¿Qué pasa si el archivo no existe en el espacio de trabajo (todavía / más)?
zedoo
@zedoo Si el archivo no existe, abra la vista "Git Staging", haga clic con el botón derecho en el archivo eliminado en la lista "Cambios sin clasificar" y seleccione "Reemplazar con HEAD Revision"
Vlasta Dolejs
42

Puede lograr esto haciendo un restablecimiento (completo). En el menú contextual del proyecto, seleccione Equipo> Restablecer a ..., elija "HEAD" y "Hard" como tipo de restablecimiento.

Tenga en cuenta que al hacer esto, perderá los cambios de TODOS los archivos. Para revertir un solo archivo, vea esta respuesta .

Simón
fuente
Me acabo de enterar por las malas que commit también hace lo mismo: confirma TODOS los archivos en lugar de solo el archivo seleccionado.
Steve Kuo
Correcto, pero al menos tú puede anular la selección de archivos en el diálogo de confirmación ... Por cierto: presenté un error para restablecer bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon el
55
¡El soporte de Git en Eclipse es realmente inferior a CVS y SVN debido a esto! La funcionalidad "Reemplazar con lo último de HEAD" de CVS es realmente importante para mí.
kosoant
@kosoant Eclipse también puede hacer eso con Git. Ver esta respuesta
Brad Cupit
3
Él pregunta explícitamente sobre la reversión de un archivo, no todos.
Zofren
18

en la versión Eclipse: 3.7.0

en "Perspectiva de sincronización del equipo" -> haga clic derecho en el archivo / carpeta en la vista de sincronización -> sobrescribir

ekeren
fuente
Este fue uno de los más fáciles de realizar. Hace una ventana emergente para confirmar que desea anular sus cambios locales.
Karidrgn
Esto eliminó nuevos archivos, cambios no organizados, que es lo que necesitaba.
Katu
12

Otra posibilidad es usar la vista Git Staging :

  • Abra la vista Git Staging presionando Ctrl + 3 o Comando + 3 y escribiendo
    staging
  • En caso de que la vista aún no muestre su repositorio, haga clic en el proyecto o archivo
  • Ahora debería ver los archivos que modificó en la sección Cambios sin clasificar
  • Haga doble clic en el archivo sin clasificar
  • Ahora verá una vista de comparación con su versión a la izquierda y la versión anterior a los cambios a la derecha

Ahora, para deshacer solo algunos de los cambios en el archivo, haga lo siguiente:

  • En la vista de comparación, seleccione una de sus líneas modificadas
  • Seleccione el elemento de la barra de herramientas Copiar cambio actual de derecha a izquierda

Esto hará que el lado izquierdo se corresponda con el lado derecho para este cambio. Guarde el archivo para finalizar la operación de deshacer.

Para deshacer todos sus cambios:

  • En la vista de preparación, haga clic derecho en el archivo sin clasificar
  • Seleccione Reemplazar con archivo en el índice Git

También puede seleccionar más de un archivo sin etapas y luego hacer clic con el botón derecho.

robinst
fuente
Me pregunto por qué esta respuesta obtuvo menos votos. Preferiría marcar esto mejor; nunca me hubiera imaginado a mí mismo. Gracias @robinst
HarsH
11

Revierta un solo archivo yendo a Ventana> Mostrar vista> Otro> Puesta en escena de Git> Cambios sin clasificar

Seleccione los archivos que desea revertir. Haga clic derecho y elija Reemplazar con revisión HEAD

Tenga en cuenta que este paso no se puede deshacer.

(Estoy usando la versión Eclipse: 3.7.2 Egit versión 2.3.1.201302201838-r)

ejército de reserva
fuente
7

Para revertir , puede hacer clic derecho en el archivo / directorio que desea, luego seleccionar Reemplazar con -> versión HEAD

usuario3812819
fuente
¿Se aplica a algún complemento de Git en Eclipse? Funcionó bien con Egit.
johnnieb
ACTUALIZACIÓN: En Eclipse Mars y Luna SR2 (incorporado Git) funcionó así.
Mag
4

Equipo abierto de sincronización. Encuentra el archivo y haz clic derecho -> Sobrescribir.

ACTUALIZAR

En Eclipse Luna (4.4.2) Abra Team Synchronizing. Encuentra el archivo y haz clic derecho -> "Revertir ..."

Geddon
fuente
3

La funcionalidad está realmente allí, pero puede no ser obvia:

  • Asegúrese de que quickdiff esté habilitado con una revisión de git y que la línea de base de quickdiff sea HEAD (este es el valor predeterminado).
  • Abra el archivo que desea revertir.
  • Seleccionar todo (Ctrl-A)
  • Haga clic derecho en la barra de QuickDiff
  • Seleccione "Revertir selección"
  • Salvar

por cierto, revertir en git lingo significa crear una nueva confirmación para revertir una confirmación anterior.

robinr
fuente
Para trabajar con quickdiff aquí hay una introducción rápida: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin Despa
1

para revertir todo su archivo a los datos del repositorio:

Haga clic en la carpeta que desea hacer la revisión y luego vaya a GitStaging ingrese la descripción de la imagen aquí

adhg
fuente