CO ROBI GIT CHECKOUT
Czym jest `git checkout`?
`git checkout` to komenda w systemie kontroli wersji Git, która pozwala użytkownikom na przełączanie się pomiędzy różnymi wersjami kodu (commitami) w repozytorium. Umożliwia ona powrót do wcześniejszych wersji, przełączanie się na gałęzie i sprawdzanie zmian wprowadzonych przez innych członków zespołu.
Składnia
“`
git checkout [opcje] [commit lub gałąź]
“`
Można określić wiele gałęzi lub commitów, a Git automatycznie przełączy się na ostatnio wymieniony.
Opcje powszechne
* `-b`: Utwórz i przełącz się na nową gałąź.
* `-f`: Wymuś przejście do żądanej wersji, nawet jeśli istnieją niezapisane zmiany.
* `-q`: Wycisz wszystkie komunikaty Git.
* `–force`: Wymuś przejście do żądanej wersji, nawet jeśli istnieją zmiany lokalne lub niezależne (niepuste drzewo robocze).
Przejście do innego commita
Aby przejść do konkretnego commitu, podaj jego skrót (np. `SHA-1`) lub użyj słowa kluczowego `HEAD~[n]`, aby przejść do wcześniejszych commitów. Na przykład:
“`
git checkout f7e30d5
“`
“`
git checkout HEAD~3
“`
Przejście do innej gałęzi
Aby przełączyć się na inną gałąź, podaj jej nazwę:
“`
git checkout master
“`
Używając opcji `-b`, możesz utworzyć i przełączyć się na nową gałąź jednocześnie:
“`
git checkout -b new-branch
“`
Sprawdzanie zmian
Po przełączeniu się na inną wersję `git checkout` aktualizuje drzewo robocze, aby odpowiadało tej wersji. Wszelkie niezapisane zmiany w obecnym drzewie roboczym zostaną utracone.
Aby sprawdzić różnice między wersjami, użyj komendy `git diff`:
“`
git diff HEAD
“`
Przykład użycia
Załóżmy, że masz repozytorium z dwiema gałęziami: `master` i `feature/new-feature`. Aby przejść do gałęzi `feature/new-feature`, wykonaj następujące polecenie:
“`
git checkout feature/new-feature
“`
Aby przejść z powrotem do gałęzi `master`, użyj:
“`
git checkout master
“`
Jeśli chcesz przejść do commitu o skrócie `1234567`, wykonaj:
“`
git checkout 1234567
“`
Często zadawane pytania
1. Co się stanie z niezapisanymi zmianami po przełączeniu się na inny commit lub gałąź?
– Niezapisane zmiany zostaną utracone.
2. Jak wrócić do niezapisanych zmian po przełączeniu?
– Użyj komendy `git checkout -`.
3. Jak automatycznie przełączać się na gałąź po jej wyciągnięciu?
– Użyj globlalnej opcji konfiguracyjnej “branch.automerge”.
4. Jak przełączyć się na inną gałąź bez aktualizowania drzewa roboczego?
– Użyj opcji `-n`.
5. Jak przełączyć się na wiele gałęzi jednocześnie?
– Użyj syntaxu `{gałąź1}…{gałąźn}`.
Git checkout
Git checkout to polecenie w systemie kontroli wersji Git, które służy do przełączania się na inny stan drzewa roboczego. Pozwala ono użytkownikowi na dostęp do określonych wersji plików i zmiany historii komitów.
Podstawowa składnia polecenia checkout wygląda następująco:
git checkout [opcje] [nazwa_gałęzi/komitu/tagu]
Opcje
- -b, –branch: Utwórz nową gałąź podczas wymeldowywania.
- -f, –force: Nadpisz lokalne zmiany, jeśli takie istnieją.
- -q, –quiet: Wycisz polecenie, nie wyświetlając wyników.
- -detach: Odłącz głowę gałęzi od dowolnego komitu.
Nazwy
- nazwa_gałęzi: Nazwa gałęzi, do której chcesz się przełączyć.
- komit_id: Identyfikator komitu, do którego chcesz się przełączyć.
- tag: Nazwa tagu, do którego chcesz się przełączyć.
Działanie
Gdy zostanie wywołane polecenie git checkout, Git wykonuje następujące czynności:
- Aktualizuje wskaźnik głowy gałęzi (HEAD) do określonej nazwy gałęzi, komitu lub tagu.
- Kopiuje pliki z odpowiedniej wersji drzewa roboczego do katalogu roboczego.
- Jeśli opcja
-fnie zostanie określona, Git sprawdzi, czy katalog roboczy jest czysty (nie zawiera niezaangażowanych zmian). Jeśli tak nie jest, Git wyświetli komunikat o błędzie i nie wykona przełączenia.
Przykłady
- Przejście do gałęzi
main:
git checkout main
- Przejście do komitu o identyfikatorze
1234567890:
git checkout 1234567890
- Przejście do tagu o nazwie
v1.0:
git checkout v1.0
- Utworzenie nowej gałęzi o nazwie
nowa_gałąźi przejście do niej:
git checkout -b nowa_gałąź
Scenariusze użycia
Polecenie git checkout jest często używane w następujących scenariuszach:
- Przełączanie się między gałęziami: Użytkownicy mogą przełączać się między różnymi gałęziami, aby pracować nad różnymi funkcjami lub poprawkami bez wpływu na inne gałęzie.
- Dostęp do historii: Użytkownicy mogą przełączać się na starsze wersje plików w celu przeglądania historii lub rozwiązywania problemów.
- Tworzenie nowych gałęzi: Użytkownicy mogą tworzyć nowe gałęzie z istniejących gałęzi lub komitów, aby izolować zmiany i pracować nad nowymi funkcjami.
- Uaktualnianie lokalnych zmian: Użytkownicy mogą przełączać się na inne gałęzie, a następnie z powrotem do swojej bieżącej gałęzi, aby uaktualnić lokalne zmiany za pomocą zmian z innych gałęzi.
Uwaga
Należy zachować ostrożność podczas korzystania z polecenia git checkout, ponieważ może ono spowodować utratę lokalnych zmian, jeśli nie zostanie użyta opcja -f. Zawsze zaleca się wykonanie komitu lub wypchnięcie zmian przed przełączeniem na inną gałąź.