2011-11-23 19 views
17

Czy można usunąć plik na stałe z pliku źródłowego bez usuwania lokalnej kopii za pomocą wtyczki Egit?Wtyczka Eclipse Git - usunięcie pliku z repozytorium bez usuwania lokalnego

Np. Czy istnieje działanie GUI równoważne uruchomieniu "git rm --cached"?

(Edytowane w celu uproszczenia pytanie)

+1

Untrack Myślałem, że oznacza niepoprawne zmiany. Dlaczego po prostu nie usuniesz pliku, a następnie nie zatwierdzisz go z repozytorium? –

+0

Nie chcę usuwać plików lokalnie, chcę zatrzymać ich nadpisywanie przez przeciągnięcie. Usuwanie i odtwarzanie nie jest opcją, ponieważ niektóre pliki i foldery są tymi, których IDE Force.com nie pozwoli usunąć. – naomi

+1

Chociaż ** nie usunie ** pliku z repozytorium, ustawienie "Wznów niezmienione" (Zespół> Zaawansowane) powinno pomóc w tym zakresie. Należy pamiętać o ustawieniach tego ustawienia (patrz http://schacon.github.com/git/git-update-index.html). –

Odpowiedz

13

Znalazłem odpowiedź. Team-> Untrack jest rzeczywiście odpowiednikiem "rm --cached". Istnieje jednak znany błąd, który wywołuje dziwne zachowanie, gdy się je usuwa, a następnie próbuje je zatwierdzić.

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

+0

jak mogę rozwiązać to w elegancki sposób? dzięki – yee

+0

Nie mogłem. Przestałem używać EGit z tego powodu i kilka innych błędów. Jednak to było ponad rok temu, więc programiści Egit mogli już to poprawić. – naomi

+2

@naomi Nie. W kwietniu wydaje się, że po prostu uznali, że jest to zbyt trudne i nie spróbuje tego naprawić. – EdGruberman

0

inną opcją, podobny do tego, co Sri Sankaran sugeruje w komentarzach, jest zaktualizowanie indeksu w celu zakładamy żadnych modyfikacji pliku config:

od preferencji, w Egit można wymienić „przyjęto bez zmian” pliki :

assume unchanged

plik pozostaje wersjami i na dysku, ale nie modyfikacja będzie d na tym etaty.

+0

Dzięki - Nie mogę znaleźć tego zestawu preferencji, gdzie oni są? – naomi

4

miałem ten sam problem, po tym początkowo nie katalogów i plików w .ignore. Próbowałem również opcji "Untrack" i "Remove from index", z których nie pomógł (ze względu na wciąż nierozwiązany problem Egita). Ostatecznie usunąłem pliki lokalnie (pozostawiając cały projekt w błędach), zatwierdziłem i wepchnąłem go na github, a następnie cofnąłem usunięcie lokalnie i dodałem pliki do .ignore. Bardzo nieelegancka, ale zadziałała. Straciłem na nim wiele czasu i nerwów i mam nadzieję, że to komuś pomogło.

3
Team -> Advanced -> Untrack 

wykonał pracę (git rm --cached) dla mnie.

+0

Dla osób zainteresowanych tym rozwiązaniem ... Po wykonaniu powyższego kroku, po prostu zatwierdz i popchnij do pilota i to powinno działać jak urok .. Dobra odpowiedź, wielkie dzięki! – labheshr