Jako oprogramowanie do kontroli wersji, Git sprawia, że ​​cofanie zmian jest przewidywalnie łatwe. Ale nawet koncepcja cofnięcia zmiany jest bardziej skomplikowana, niż mogłoby się wydawać. Repozytorium Git to nie to samo, co zestaw plików, nad którymi pracujesz lokalnie. Cofanie zmian oznacza dokładne rozważenie, gdzie chcesz je cofnąć.

gitSprawdź, resetowanie git, oraz gitprzywrócić to polecenia, które mogą pomóc w przywróceniu poprzedniej wersji nie tylko bazy kodu, ale także poszczególnych plików. Poznaj szczegóły tych poleceń, a w mgnieniu oka będziesz skakać po historii plików jak ekspert.

Co w ogóle oznacza resetowanie pliku?

Należy pamiętać, że resetowanie pliku może oznaczać różne rzeczy dla różnych osób w różnych okolicznościach. Również resetowanie git polecenie może nie odpowiadać Twoim oczekiwaniom, co oznacza resetowanie.

Czasami będziesz chciał cofnąć lokalne zmiany, aby plik był ponownie zsynchronizowany z bieżącym repozytorium. W innych przypadkach możesz chcieć wycofać zmiany, które już zatwierdziłeś w repozytorium.

instagram viewer

Kluczem do zrozumienia różnicy są następujące terminy: drzewo robocze, obszar pomostowy i repozytorium. Pliki, które edytujesz lokalnie, należą do drzewa roboczego. Zatwierdzane pliki ostatecznie trafiają do repozytorium. Kiedy jesteś w trakcie zbierania zmian, przygotowujesz pliki. Plik może mieć różną zawartość w każdej z tych lokalizacji.

Zobacz też: Zaawansowany samouczek Git

Możesz myśleć o zresetowaniu pliku jak o cofnięciu zmian. Ale stan pliku określi, jakie zmiany faktycznie cofasz. Oczywistym przypadkiem jest to, że wprowadzasz pewne zmiany, zatwierdzasz je, a później decydujesz, że ich już nie chcesz.

Innym przypadkiem może być umieszczenie pliku w poczekalni, a teraz chcesz go usunąć.

Jak cofnąć poprzednio zatwierdzony plik?

Zajmijmy się sprawą łatwiejszą do zrozumienia: zatwierdziłeś plik, a teraz chcesz cofnąć wprowadzone do niego zmiany.

Polecenie Git, które to robi, jest, nieco nieintuicyjnie, nazwane Sprawdź. Mogłeś użyć Sprawdź wcześniej przełączać gałęzie, ale to niewielka część tego, co może zrobić polecenie. Umożliwia również aktualizację plików w drzewie roboczym, aby dopasować je w dowolnym momencie historii repozytorium. Możesz to zrobić dla określonego tagu, gałęzi, a nawet konkretnego zatwierdzenia.

Najbardziej użyteczną, uniwersalną formą tego polecenia jest:

git checkout [identyfikator zatwierdzenia] -- ścieżka/do/pliku

Tutaj mijamy konkretną ścieżkę (ścieżka/do/pliku), który identyfikuje tylko jeden plik. Określamy również identyfikator zatwierdzenia, aby uzyskać plik, który istniał w tym konkretnym zatwierdzeniu. To polecenie zaktualizuje plik tylko w naszym drzewie roboczym.

Zwróć uwagę, że wypisanie wcześniejszej wersji pliku modyfikuje kopię roboczą bez zatwierdzania jej ani nawet jej przemieszczania. Aby w pełni zakończyć cofanie do repozytorium, musisz umieścić plik w poczekalni i utworzyć nowe zatwierdzenie.

Zobacz też: Jak sprawdzić historię projektu za pomocą git log

Jak zmienić to, co wystawiam?

Inny rodzaj cofania dotyczy obszaru postoju. Zawiera zmiany, które zatwierdzisz obok repozytorium. Jeśli umieściłeś wersję pliku w poczekalni, a później zdecydujesz, że nie chcesz uwzględniać jej w następnym zatwierdzeniu, najpierw zechcesz ją cofnąć.

Możesz użyć resetowanie git polecenie, aby wycofać plik z poczekalni:

git reset HEAD ścieżka/do/pliku

Czy mogę szybko cofnąć lokalne zmiany?

Tak, możesz cofnąć zmiany w pliku lokalnym przed umieszczeniem go w poczekalni. Użyj następującego polecenia:

git checkout -- ścieżka/do/pliku

Zauważ, że jest to podobne do wycofywania zmiany repozytorium, po prostu pomija identyfikator zatwierdzenia. Po wykonaniu tego polecenia Git cofnie wszelkie zmiany w kopii roboczej.

A co z przywracaniem git?

Późniejsze wersje Git mają nowsze polecenie: przywrócić. W prostych przypadkach, które tu omówiliśmy, możesz użyć następujących odpowiedników. Aby cofnąć zmianę w repozytorium:

git restore --source [identyfikator zatwierdzenia] ścieżka/do/pliku

Aby usunąć plik z poczekalni, użyj:

git restore --staged ścieżka/do/pliku

Aby cofnąć zmiany w kopii roboczej:

git przywrócić ścieżkę/do/pliku

Opanowanie możliwości wersjonowania Gita jest nieocenione

Chociaż resetowanie pliku może wydawać się powszechną czynnością, w praktyce okaże się, że zdarza się to dość rzadko. Bardziej prawdopodobne jest, że będziesz wycofywać całe zatwierdzenia, a nie pojedyncze pliki. Jednak w sytuacjach, gdy musisz to zrobić, Git przynajmniej sprawia, że ​​jest to dość proste.

Jak usunąć plik z Commit w Git

Użyj tych poleceń Git, aby wykonać operacje, takie jak usuwanie pliku z zatwierdzenia.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Programowanie
  • GitHub
  • Tworzenie stron internetowych
  • Programowanie
O autorze
Bobby Jack (63 opublikowane artykuły)

Bobby jest entuzjastą technologii, który przez prawie dwie dekady pracował jako programista. Jest pasjonatem gier, pracuje jako redaktor naczelny w Switch Player Magazine i jest zanurzony we wszystkich aspektach publikowania online i tworzenia stron internetowych.

Więcej od Bobby'ego Jacka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować