2011-11-23 23 views
17

local. Con el complemento Egit, ¿es posible eliminar permanentemente un archivo del control de origen sin eliminar la copia local?Complemento Eclipse Git: elimine el archivo del repositorio sin eliminar el

Es decir, ¿hay una acción de la GUI equivalente a ejecutar "git rm --cached"?

(Editado para simplificar la cuestión)

+1

Untrack Pensé que significa destrabar cambios. ¿Por qué no simplemente eliminas el archivo y luego te comprometes a eliminarlo de tu repositorio de subida? –

+0

No quiero eliminar los archivos localmente, quiero evitar que se sobrescriban con un tirón. Eliminar y volver a crear no es una opción, ya que algunos de los archivos y carpetas son los que el IDE de Force.com no le permitirá eliminar. – naomi

+1

Aunque no ** eliminará ** el archivo del repositorio, la configuración "Asumir sin cambios" (Equipo> Avanzado) debería ser útil en este sentido. Tenga en cuenta los inconvenientes de esta configuración (consulte http://schacon.github.com/git/git-update-index.html). –

Respuesta

13

He encontrado la respuesta. Team-> Untrack es de hecho el equivalente de "rm - cached". Sin embargo, hay un error conocido que produce un comportamiento extraño cuando destraba y luego intenta comprometerse.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=363405

+0

¿cómo puedo resolverlo de manera elegante? gracias – yee

+0

No pude. Dejé de usar EGit por esto y muchos otros errores. Sin embargo, eso fue hace más de un año, por lo que los desarrolladores de Egit pueden haberlo mejorado por ahora. – naomi

+2

@naomi Nope. En abril parece que decidieron que era demasiado difícil y no intentarán solucionarlo. – EdGruberman

0

Otra opción, similar a lo que Sri Sankaran sugiere en los comentarios, es actualizar el índice con el fin de asumir ninguna modificación a su fichero de configuración:

En las preferencias, en Egit, puede listar "asumido sin cambios" archivos :

assume unchanged

el archivo permanece versionado y en el disco, pero ninguna modificación será D detectado en él.

+0

Gracias - Aunque no puedo encontrar ese conjunto de preferencias, ¿dónde están? – naomi

4

he tenido el mismo problema, después de no incluir inicialmente directorios y archivos en .ignore. También probé la posibilidad de "Destrabar" y "Eliminar del índice", ninguna de las cuales ayudó (debido a la cuestión aún no resuelta de Egit). Así que, al final, eliminé archivos localmente (dejando todo el proyecto en errores), me comprometí y lo envié al github, y luego deshice la eliminación localmente y agregué archivos a .ignore. Muy poco elegante, pero funcionó. Perdí mucho tiempo y nervios, y espero que esto ayude a alguien.

3
Team -> Advanced -> Untrack 

hizo el trabajo (git rm --cached) para mí.

+0

Para aquellos interesados ​​en esta solución ... Después del paso anterior, simplemente confirme y presione el control remoto y debería funcionar como un encanto ... buena respuesta, muchas gracias! – labheshr

Cuestiones relacionadas