2009-02-21 19 views
54

Jestem ostatnim konwerterem git. Wspaniale jest móc używać git-svn, aby lokalnie przechowywać moje gałęzie bez zakłócania działania serwera svn. Wystąpił błąd, który istniał w najnowszej wersji kodu. Chciałem ustalić czas, kiedy to zadziałało, abym mógł użyć git bisect. Nie mogłem znaleźć odpowiedniego polecenia, aby cofnąć się w czasie. Dzięki.Jaki jest odpowiednik git dla "svn update -r"?

Odpowiedz

61
git checkout HEAD~1 

To przeniesie bieżącą HEAD do jednej wersji wcześniej.

git checkout <sha> 

Spowoduje to przeniesienie aktualnej HEAD do danej wersji. Użyj git log lub gitk, aby znaleźć wersję, której szukasz.

+2

Mimo że wykonałem oba te polecenia, nie widzę moich plików. Oto sytuacja. 1.) Usuwam folder. 2.) Wykonuję dwa polecenia, które wymieniłeś. 3.) Folder nadal jest usuwany, a nie jest pobierany, ponieważ aktualizacja SVN zostałaby przywrócona. – Danny

+2

To dlatego, że to, czego szukasz, to 'git checkout - '. – Bombe

19

A wracając do najnowszej (odpowiednik: svn up), musisz zaktualizować gałąź, zwykle:

git checkout master 

To dlatego, że HEAD odnosi się do wersji, która jest wyrejestrowany.

+4

To nie wydaje się być odpowiednikiem svn up. W svn, jeśli edytuję coś i chcę go po prostu usunąć i powrócić do aktualnej wersji repozytorium, po prostu usunę plik i wykonam svn up. Następnie aktualna wersja właśnie usuniętego pliku zostanie wyciągnięta z repozytorium. Nie dzieje się tak z mistrzem kasowania git. Mówi mi tylko, że plik został usunięty. Jak mogę odzyskać usunięty plik? – mutatron

+3

Można przywracać zmiany (w tym pliki usunięte lokalnie), sprawdzając odpowiedni plik: 'git checkout myfile.txt' – jmu

1
git pull

wydaje się bardziej odpowiednie polecenie dla czego szukasz

0

To wydaje się robić to, co chciałem, czyli to, co myślę, że pytasz zbyt

git checkout * 
0

Jeśli używasz TortoiseGit wtedy

Right Click in project folder > TortoiseGit > Pull 
Powiązane problemy