Jak cofnąć plik bez cofania całego commita Tytuł

Jak Użyć git checkout, by Cofnąć Plik Bez Przywracania Całego Commita

Czy przypadkowo zmieniłeś coś w ważnym pliku co może powodować błąd i wysłałeś zmiany w commicie? Nie martw się, wszystko jest jeszcze do uratowania! W tym praktycznym artykule dowiesz się, jak krok po kroku przywrócić pojedynczy plik do stanu z innego commita. Niezależnie od twojego doświadczenia, poznanie komendy git checkout może nie raz okazać się przydatne.

Wstęp

W tym artykule dowiemy się jak użyć git checkout aby przywrócić jeden plik z wcześniejszego commita.

Jeśli korzystasz z systemu kontroli wersji Git, to z pewnością docenisz jego elastyczność w zarządzaniu plikami. Git oferuje również złożone narzędzia, które pozwalają „podróżować w czasie” i manipulować indywidualnymi plikami w twoim repozytorium. W tym artykule skupimy się na jednej z tych zaawansowanych funkcji: przywracaniu pojedynczego pliku z wcześniejszego commita.

Pokażemy, jak ta umiejętność może uratować cię w sytuacjach kryzysowych i wpłynąć na efektywność twojego workflow.

Znalezienie ID commita

Aby cofnąć zmiany w pliku z wadliwego commitu, musimy najpierw zlokalizować ten commit z błędem. Gdy już wiemy w jakim commicie dodaliśmy błąd musimy skopiować hash tego commita z historii zmian. Poniższe screenshoty ilustrują, jak wykonać ten krok w przypadku GitHuba:

Uwaga: Proces ten może wyglądać nieco inaczej, w zależności od narzędzi z jakich korzystasz. Niemniej jednak, idea pozostaje ta sama: zidentyfikować wadliwy commit i skopiować jego hash.

Graficzny klient Gita:

Znalezienie ścieżki do pliku

Kolejnym istotnym krokiem w procesie jest zlokalizowanie ścieżki do pliku, którego chcemy przywrócić. Ważne jest, aby zrozumieć, że nie chodzi tu o ścieżkę systemową. Interesuje nas ścieżka względna w kontekście naszego repozytorium Git.

W praktyce oznacza to, że zamiast pełnej ścieżki systemowej typu:
C:/Projekty/MojProjekt/plik.txt

będziemy używać ścieżki względnej z do naszego repozytorium, na przykład:
MojProjekt/plik.txt

Odnalezienie tej ścieżki jest kluczowe, ponieważ bez niej nie będziemy mogli pokazać o jaki plik nam chodzi. W zależności od narzędzia, z którego korzystasz (linia komend, graficzny klient gita, itd.), metody odnalezienia tej ścieżki mogą się różnić, ale zawsze są to informacje dostępne w historii commitów lub w eksploratorze projektu.

GitHub:

Graficzny klient Gita:

Uwaga na ścieżki!

Zamiast wpisywać:
MojProjekt/plik.txt

Bezpieczniej jest użyć:
„MojProjekt/plik.txt”

Ten drugi zapis zapewnia, że cała ścieżka jest traktowana jako jeden, spójny argument, co eliminuje ryzyko wystąpienia błędów wynikających ze złej interpretacji spacji.

Jak użyć git checkout?

Aby naprawić błąd w pliku za pomocą Git, konieczne jest użycie komendy git checkout, podając przy tym hash wadliwego commita, na końcu dodając ~1 (co pozwoli nam na pobranie pliku z commita poprzedzającego o 1 ten wadliwy), oraz ścieżkę do interesującego nas pliku. Ważne jest, aby pamiętać, że w tej komendzie używamy dwóch myślników (--), a nie jednego!

W praktyce komenda będzie wyglądała następująco:

git checkout HASH~1 -- "ścieżka/do/pliku"

A tak prezentuje się gotowa komenda, dostosowana do commita i pliku przedstawionych na wcześniejszych obrazkach:

Bibliografia

Stack Overflow

Udostępnij:

O autorze:

Odpowiedz