Sklonowałem repozytorium git określonego projektu. Czy mogę przywrócić pliki do stanu początkowego, a kiedy przeglądam pliki, przejdź do wersji 2, 3, 4 ... najnowszej? Chciałbym mieć przegląd tego, jak rozwijał się projekt.
git
revision
revision-history
xralf
źródło
źródło
git log -n1
. Ale jeśli sięgit checkout
nie powiedzie, to strata wysiłku.git log
pokazuje teraz tylko pierwszy zatwierdzenie, czy mogę znaleźć sha1 następnego zatwierdzenia?git log --oneline
i wkleić dane wyjściowe do pliku tekstowego w celach informacyjnych (zapewnione przez to skrócone sumy sha1 są unikalne). Inną opcją, jeśli twoja historia jest liniowa, jest ustalenie, ile jest zatwierdzeń od pierwszego zatwierdzeniamaster
i użyciagit checkout master~543
(jeśli jest 543 zatwierdzeń), a następniegit checkout master~542
itd.Aby przejść do konkretnej wersji / zatwierdzenia, uruchom następujące polecenia. KOD HASŁA, z którego możesz uzyskać
git log --oneline -n 10
Uwaga - Po zresetowaniu do konkretnej wersji / zatwierdzenia możesz uruchomić
git pull --rebase
, jeśli chcesz przywrócić wszystkie zatwierdzenia, które są odrzucane.źródło
reset
nie tylko kasa konkretny punkt na wykresie będzie również Najedź aktualnie wyrejestrowany oddziałreset
wszystkie oczekujące zmiany zostaną odrzucone.git pull --rebase
działa tylko wtedy, gdy masz pilota do repozytorium i jest aktualny.Możesz uzyskać graficzny widok historii projektu za pomocą narzędzi takich jak
gitk
. Po prostu biegnij:Jeśli chcesz pobrać konkretny oddział:
Dla konkretnego zatwierdzenia użyj skrótu SHA1 zamiast nazwy gałęzi. (Zobacz Treeishes w Git Community Book , który jest dobrym tekstem , aby zobaczyć inne opcje nawigacji po drzewie).
git log
ma cały zestaw opcji do wyświetlania szczegółowej lub podsumowującej historii.Nie wiem, jak łatwo przejść do przodu w historii zatwierdzeń. Projekty o historii liniowej prawdopodobnie nie są tak powszechne. Pomysł „rewizji” takiej jak w przypadku SVN lub CVS nie odwzorowuje tak dobrze w Git.
źródło
Używając klucza SHA1 zatwierdzenia, możesz wykonać następujące czynności:
Najpierw znajdź zatwierdzenie, które chcesz dla określonego pliku:
git log -n <# commits> <file-name>
To, w oparciu o twoje
<# commits>
, wygeneruje listę zatwierdzeń dla określonego pliku.Wskazówka: Jeśli nie jesteś pewien, co popełnić szukasz, to dobry sposób, aby dowiedzieć się za pomocą następującego polecenia:
git diff <commit-SHA1>..HEAD <file-name>
. To polecenie pokaże różnicę między bieżącą wersją zatwierdzenia a poprzednią wersją zatwierdzenia dla określonego pliku.UWAGA: klucz SHA1 zatwierdzenia jest sformatowany na
git log -n
liście jako:Po drugie, sprawdź żądaną wersję:
Jeśli znalazłeś żądaną wersję zatwierdzenia / wersji, po prostu użyj polecenia:
git checkout <desired-SHA1> <file-name>
Spowoduje to umieszczenie wersji pliku określonej w obszarze testowym. Aby usunąć go z obszaru przeciwności, wystarczy użyć polecenia:
reset HEAD <file-name>
Aby powrócić do miejsca, w którym wskazuje zdalne repozytorium, wystarczy użyć polecenia:
git checkout HEAD <file-name>
źródło
Byłem w sytuacji, gdy mamy gałąź master, a następnie kolejną gałąź o nazwie 17.0, a wewnątrz tej wersji 17.0 był hash zatwierdzania, nie mówiąc „XYZ” . A klient otrzymuje wersję do tej wersji XYZ. Teraz natrafiliśmy na błąd, który należy rozwiązać dla tego klienta. Musimy więc utworzyć osobny oddział dla tego klienta, aż do skrótu „xyz”. Oto jak to zrobiłem.
Najpierw utworzyłem folder z tą nazwą klienta na moim komputerze lokalnym. Powiedz, że nazwa klienta to „AAA” po utworzeniu tego folderu, wydaj następujące polecenie w tym folderze:
źródło
Jednym ze sposobów byłoby utworzenie wszystkich zatwierdzeń kiedykolwiek dokonanych dla łatek. sprawdź początkowe zatwierdzenie, a następnie po przeczytaniu zastosuj łaty w kolejności.
użyj,
git format-patch <initial revision>
a następniegit checkout <initial revision>
. powinieneś dostać stos plików w swoim reżyserze, zaczynając od czterech cyfr, które są łatkami.kiedy skończysz czytać swoją wersję, po prostu rób,
git apply <filename>
co powinno wyglądaćgit apply 0001-*
i liczyć.Ale naprawdę zastanawiam się, dlaczego nie chcesz po prostu przeczytać samych poprawek? Proszę zamieść to w swoich komentarzach, ponieważ jestem ciekawy.
Podręcznik git daje mi to również:
możesz również zajrzeć na stronę,
git blame filename
która daje listę, w której każda linia jest powiązana z hashem zatwierdzającym + autorem.źródło
Aby dostać się do określonego zatwierdzonego kodu, potrzebujesz kodu skrótu tego zatwierdzenia. Możesz uzyskać ten kod skrótu na dwa sposoby:
git log
i sprawdź swoje ostatnie zatwierdzenia w tym oddziale. Pokaże ci kod skrótu twojego zatwierdzenia i wiadomość, którą zostawiłeś podczas zatwierdzania kodu. Po prostu skopiuj, a następnie zróbgit checkout commit_hash_code
Po przejściu do tego kodu, jeśli chcesz nad nim popracować i wprowadzić zmiany, powinieneś utworzyć kolejną gałąź
git checkout -b <new-branch-name>
, w przeciwnym razie zmiany nie zostaną zachowane.źródło
Aby sprawdzić zatwierdzenie (patrz na przeszłość!).
Aby brutalnie zrestartować od zatwierdzenia i usunąć te późniejsze gałęzie, które prawdopodobnie pomieszałeś.
źródło