Dom Badanie Jak przywrócić pojedyncze pliki i foldery w Git

Jak przywrócić pojedyncze pliki i foldery w Git

za pomocą Frank
Jak przywrócić pojedyncze pliki i foldery w Git

Wstęp

Git to doskonałe narzędzie do utrzymywania każdej wersji bazy kodu i czasami jest wymagane cofnięcie się w czasie i przywrócenie starszych wersji plików. Git może cofnąć zmiany w pojedynczym pliku lub folderze, a także wycofać kompletne zatwierdzenia lub zresetować całe repozytorium.

Wybór między przywracaniem a resetowaniem

Kiedy „cofasz” zatwierdzenie, Git zwykle stosuje nowe zatwierdzenie z odwrotnymi modyfikacjami, zasadniczo je anulując. Jest to przydatne, jeśli popełnisz błąd i musisz „usunąć” zatwierdzenie, nawet jeśli pozostaje ono w historii.

Procedura resetowania repozytorium jest nieco inna. Możesz wycofać tylko jeden zatwierdzenie na raz, ale jeśli uruchomisz reset git, Git całkowicie zresetuje repozytorium do momentu utworzenia tego zatwierdzenia. Dzieje się tak z różnych powodów, z których najczęstsze to usuwanie zatwierdzeń lub poprawianie historii gałęzi.

Obie te procedury mają wpływ na całe repozytorium, ale identyczne polecenia mogą być użyte do uzyskania tych samych efektów na poszczególnych plikach lub folderach. Na przykład wykonanie git reset na pojedynczym plik przywróci go do stanu, w jakim był w momencie tworzenia zatwierdzenia. Jest to korzystne, jeśli chcesz po prostu wybrać starszą wersję pliku z historii Git.

Badanie starych wersji Git

The low-tech approach to restoring a file to its original state is rather simple—Github and most other Git servers maintain track of your file history, and you can simply click on a commit and choose “Browse Files” to see a snapshot of your repository from the past. You may then either pobierz plik lub skopiuj tekst.

Jest to szczególnie przydatne, jeśli pracujesz z dużą liczbą plików kodu i chcesz porównać wcześniejsze wersje napisanych przez siebie procedur. W tym scenariuszu prawdopodobnie nie chcesz odwrócić całej rzeczy, tylko jedną funkcję. Bez dotykania Git CLI, możesz skopiować kod z tej funkcji.

Przywracanie pliku Git do starej wersji

Dokonaliśmy zatwierdzenia w tym repozytorium testowym, które zmieniło README i dodało nowy plik. Chcemy cofnąć modyfikacje README, ale nie chcemy przywracać całego repozytorium do pierwszego zatwierdzenia.

Odpowiedzią jest zresetowanie samego pliku README poprzez pobranie starszej wersji tego pliku. Polecenie checkout w Git może wykonywać różne rzeczy, takie jak przełączanie gałęzi, chociaż często jest używane do pobierania danych na podstawie zatwierdzenia lub identyfikatora gałęzi.

Aby przywrócić plik do wcześniejszej wersji, znajdź identyfikator zatwierdzenia, z którego chcesz go przywrócić. Możesz użyć git log z pojedynczym plikiem w zakresie, aby zobaczyć tylko zmiany wprowadzone w tym pliku:

git log README.md

Skopiuj identyfikator zatwierdzenia, a następnie uruchom git checkout z identyfikatorem i ścieżką pliku:

git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md

To zmieni plik z powrotem, ale nie zatwierdzi jeszcze zmian. Możesz wprowadzać zmiany i zatwierdzać, kiedy będziesz gotowy.

W tym przypadku git checkout oznaczył modyfikacje jako gotowe do następnego zatwierdzenia. Jeśli nie chcesz zatwierdzać modyfikacji, możesz to zrobić. Może to być przydatne do tymczasowego pobierania starszych wersji plików bez korzystania z Github.

Przywracanie zmian w poszczególnych plikach

Podobnie możesz użyć git revert, aby cofnąć modyfikacje wprowadzone w jednym zatwierdzeniu. Nie ma możliwości zastosowania go do pojedynczego pliku, jednak jeśli zatwierdzenie wpływa na inne pliki, po prostu odrzuć modyfikacje.

Use the —no-commit switch to enable modification of the “revert commit” that Git generates automatically.

git odwróć de8564b131ca6a15a7e7c73f5ef156b119cc0b93

Pozwala to na wprowadzenie zmian w plikach przed zakończeniem cofania. Jeśli są jakieś niepożądane zmiany, które zostały wprowadzone, możesz je usunąć za pomocą klienta lub pustej kasy git.

git checkout -- plik

Może Ci się spodobać

Navhow poświęcona jest nauczaniu ludzi na całym świecie, jak robić cokolwiek.

 

Subskrybuj

Najlepszy biuletyn informacyjny w dowolnym miejscu

©2022 Navhow, Wszystkie prawa zastrzeżone