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.


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.


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 .


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


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.


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)


7

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


¿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 ..."


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.


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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.