2009-07-22 3 views
6

W katalogu roboczego svn, mogę"odpowiednik" rm "+" aktualizacja svn "w Git?

  1. dokonać pewnych zmian w plikach w katalogu roboczym
  2. usunąć wszystkie zmiany I dokonanych przez „rm wszystkich plików źródłowych w tym katalogu, ale zachowywał moją .svn directory)
  3. pobierz to, co ma portale, używając 'svn update', a svn ściągnie całe źródło z powrotem do mojego katalogu roboczego.

Czy istnieje odpowiednik polecenia w git? czy możesz mi powiedzieć, jak to zrobić?

+2

Istnieje svn revert; nie musisz usuwać wszystkich plików, których dokonałeś zmian. – balpha

+0

'svn revert' nie usunie dodanych plików, tak myślę. – Bombe

Odpowiedz

9
git reset --hard 

który jest synonimem "git reset --hard HEAD" powinien być tym, czego szukasz.

Używaj go ostrożnie, ponieważ skutecznie usunie wszelkie bieżące zmiany w twoim katalogu roboczym. Patrz „Undoing in Git

Uwaga: jako Charles Bailey wspomina w komentarzu, a in his answer, to nie usuwa plików nieśledzone.
Dla tego git clean jest właściwym narzędziem. Zobacz jego answer for more, ale także pytanie SO "How do you remove untracked files from your git working copy?" lub artykuł Git-Ready "cleaning up untracked files".

Więc jeśli chcieliśmy zrobić poważny Czyszczenie:

$ git clean -n -d -x 

tego polecenia by oczyścić pliki wymienione w ramach projektu .gitignore pliku jak również usuwanie innych plików i katalogów, które aren” t konieczne.
Jak zawsze, należy zachować ostrożność podczas uruchamiania git-clean, i upewnij się, że dokładnie sprawdzasz, co naprawdę usuwasz.

Uwaga, możesz chcieć move your untracked files instead.

+0

Warto zauważyć, że nie usuwa to nieskrytych (nowych lub zignorowanych) plików, które byłyby w przepisie OP-owego svn. –

4
  1. Chcesz wyrzucić wszystkie zmiany do śledzonych plików w katalogu roboczym
  2. Jesteś w katalogu głównym katalogu roboczym

    $ git checkout.

To spowoduje rekursywne kasowanie (przywracanie) każdego pliku, który jest śledzony od ostatniego zatwierdzenia w bieżącym oddziale (nagłówku).

2

Zakładając, że jesteś w katalogu głównym swojej kopii roboczej.

Chcesz zrobić porządek, aby usunąć niepotwierdzone pliki, najpierw wykonaj próbę na sucho, aby upewnić się, że nic nie będzie pierwsze. (Możesz zbadać katalog (-d) i używać ignorować zasady (-x) Opcje, jak również.)

git clean -n 

następnie uruchomić go „na poważnie”.

git clean -f 

Następnie sprawdź nowe niezmodyfikowane pliki z indeksu dla wszystkich śledzonych plików.

git checkout . 
+0

Dobra uwaga. +1. Połączyłem twoją odpowiedź w mojej. – VonC