2015-07-29 13 views
6

Wiem, że to pytanie zostało zadane, ale nie mogę całkowicie zastąpić mojego lokalnego oddziału moim zdalnym oddziałem. Zainstalowałem wtyczkę 3rd party w moim lokalnym oddziale i mam problem z usunięciem instalacji; w ten sposób chcę "zacząć od nowa" ze zdalną wersją oddziału. Oddział nazywa się "dev" lokalnie i "origin/dev" zdalnie. Próbowałem trzy sposoby zastąpienia mojego lokalnego oddziału ze zdalnym wersji:Git - zastąp lokalny oddział zdalnym oddziałem

1. git reset HEAD --hard 

2. git reset --hard origin/dev 

3. git checkout dev 
    git fetch 
    git reset --hard origin/dev 

Ale przeglądu lokalnego kodu po wykonanie powyższych poleceń git, mogę jeszcze zobaczyć resztki pliki i foldery z wtyczki.

Korzystanie git status, mam "Your branch is up-to-date with 'origin/dev'. Nothing to commit, working directory clean".

Korzystanie git status --ignored, mam zbyt wiele plików do listy ... zasadzie wszystko w moim pliku .gitignore wierzę.

Chcę tylko kod, który istnieje w zdalnej gałęzi dev i nic więcej.

Czy ktoś może pomóc?

Aktualizacja:

Okazuje się, że błąd, że byłem coraz było spowodowane pęczek plików w katalogu, root/var/cache/*. Mój plik .gitignore zawiera następujące wpisy:

/var/* 
!/var/package 
var/session/* 

próbując możliwych sposobów, aby przywrócić z lokalnym oddziałem dev zdalnego (wymienione w pytaniu powyżej, jak również proponowanych rozwiązań poniżej), katalog root/var/cache pozostał obecny; Musiałem ręcznie usunąć to, zanim moja aplikacja ponownie zaczęła działać. Patrząc na github, zdalna gałąź dev nie zawierała 'root/var/cache . Can anybody tell me why root/var/cache` nie odpowiadał na polecenia git służące do zastąpienia lokalnego oddziału wersją zdalną?

+1

właśnie usunął wszystko i przeklonowanie? – Mark

+0

Pliki z wtyczki nie są śledzone przez git, więc git w ogóle ich nie dotyka. Po prostu usuwaj je ręcznie. – Hong

+0

Nie chciałem usuwać i ponownie przesyłać, ponieważ mam inne gałęzie w repozytorium, które muszę zachować. Jestem nowy, ale ciężko uwierzyć, że nie jest to łatwy sposób na zrobienie tego. Wnioski: nie instaluj wtyczek dostawców, które zawierają 750 plików, które wymagają "przeciągania i upuszczania" plików w całym kodzie. – Vee

Odpowiedz

4

Z innej branży (słownie master), zresetować oddział dev:

git branch -f dev origin/dev 

Następnie checkout dev i oczyścić swoje dodatkowe pliki:

git checkout dev 
git clean -d -f 
+0

Dzięki, @acanby, ale katalog, który powodował problemy, nie został usunięty; Musiałem ręcznie usunąć ten katalog. Czy jest jakiś pomysł, dlaczego polecenia git nie usuwały tego katalogu? Szczegółowe informacje można znaleźć w zaktualizowanym pytaniu. – Vee

4

Wypróbuj git clean -fx. To usunie wszystkie nieśledzone pliki, nawet jeśli są wymienione w .gitignore.

+1

, ale zanim to zrobisz, pamiętaj o utworzeniu kopii zapasowej wszystkich niezbędnych plików. Czasami IDE przechowuje informacje w '.hidden_directories' o tym, jak skonfigurowany jest twój projekt. Na przykład '.idea' w przypadku PyCharm/Webstorm itp. – noisy

+0

Dzięki, Wouter - wypróbował twoje rozwiązanie, ale nie było katalogu (który powodował mi problemy), który nie został usunięty; zaktualizował pytanie. Jakiś pomysł, co robiłem źle? – Vee

+0

Git nie śledzi katalogów, tylko pliki. Jeśli nazwa pliku zawiera komponent ścieżki, który nie istnieje, git utworzy brakujące części, ale w przeciwnym razie je zignoruje. Możesz dodać przełącznik -d, aby wyczyścić puste katalogi. –