Git jako najpopularniejszy rozproszony system kontroli wersji – może się pochwalić rozbudowanym zbiorem funkcjonalności oraz różnego rodzaju integracji – co pozwala wykorzystać go swobodnie w wielu codziennych zadaniach.
W ramach tego materiału dowiesz się jak przełączać się między branch'ami za pomocą git checkout i git switch, a także jak wykorzystać te polecenia do tworzenia nowych gałęzi.
Git checkout | Git switch – wprowadzenie
Z tego materiału dowiesz się:
- Czym jest git checkout?
- Jak przełączać się między branch'ami za pomocą git checkout?
- Jak tworzyć nowe branch'e korzystając z git checkout?
- Jak działa git switch?
- Co różni oraz łączy git switch i git checkout?
Git install – instalacja Git
Jeżeli nie masz jeszcze Gita zainstalowanego lokalnie – szybko możesz to nadrobić.
W poniższym materiale znajdziesz instrukcję, jak można to zrobić.
→ ZOBACZ 👉: Install Git – Instalacja Git, Windows, Ubuntu – Bash, GUI
Git i Git branch
W ramach tego materiału zajmiemy się przede wszystkim przełączaniem się między branch'ami (git checkout oraz git switch) – natomiast kompletny tutorial Git i Git branch znajdziesz poniżej.
→ ZOBACZ:
👉 Git tutorial | stash, rebase, commit, merge, checkout, push i clone
👉 Git branch | git branch create, rename, delete, checkout, merge
Git checkout – przełączanie się między branch'ami
Pracując często na kilku branch'ach, zdecydowanie przydaje się polecenie git checkout.
Przyjrzyjmy się bliżej temu co git checkout nam umożliwia.
Git checkout pozwala nam:
- Przełączać aktualnie aktywną gałąź.
- Tworzyć nowego branch'a.
- Przywracać pliki.
Najczęstszym przypadkiem użycia git checkout jest przełączenie się na inną gałąź, co czyni ją nową gałęzią HEAD. Przeskakiwanie między gałęziami jest częstą praktyką w codziennym życiu programisty, dlatego polecenie:
git checkout
Git checkout feature

Na poniższym przykładzie widać przełączenie się na branch kopia-master.

Wyobraź sobie taką sytuację gdzie od kilku dni pracujesz nad plikiem strona-główna.html.
Coraz bardziej odczuwasz zadowolenie z efektu swojej pracy, a strona zaczyna wyglądać bardzo profesjonalnie. Kończąc pracę, zaczynasz się źle czuć i bierzesz dzień wolnego. W tzw. międzyczasie, jako że deadline goni i pomimo tego, że kategorycznie zaznaczasz, że nikt ma nie dotykać pliku, pracę przejmuje Twój kolega z zespołu. Kiedy wracasz po swojej nieobecności – strona nie działa, nic nie wyświetla się tak, jak powinno. Wiesz, że kolega nie do końca przyłożył się do pracy. Całe szczęście można przełączyć się na konkretną wersję pliku i naprawić ten cały bałagan. Wystarczy, że sprawdzisz swój ostatni commit i wykorzystasz git checkout
Git checkout ac3d438we12 strona-glowna.html
Poniższy przykład przedstawia plik strona-glowna.html.
Wprowadzone i zapisane zostały dwie zmiany:
- dodanie tytulu,
- oraz dodanie tresci.


Użyłam git checkout cab677c1f24e4a03a31fb318fd600d2e45f553cd (hash commit'a dodanie tytulu) strona-glowna.html, co w efekcie sprawiło, że przełączyłam się na tym samym branch'u do wersji z commit'a dodanie tytulu.
Jeżeli zastosowałabym dosłownie to samo polecenie np. na branch'u master to na tym branch'u pojawiłby się plik strona-glowna.html. Wersja pliku byłaby taka jak na powyższym przykładzie.
Jeśli określisz „HEAD” jako wersję, to przywrócisz ostatnią zatwierdzoną (git commit) wersję pliku, bez dodatkowych zmian, skutecznie cofając wszelkie lokalne zmiany, które aktualnie masz w tym pliku.
Poniższy przykład przedstawia plik strona-glowna.html.
HEAD znajduje się na commicie dodanie tresci. Zycze Ci milego dnia nie zostało zapisane na lokalnym repozytorium.


Powyżej widać, że po przełączeniu się na HEAD Zycze Ci milego dnia nie znajduję się już w pliku.
Git Checkout a Remote Branch – przełączanie się na lokalną kopię zdalnego branch'a
Współpracując z zespołem przy projekcie, często wykorzystujemy zdalne repozytoria. Te repozytoria mogą być udostępniane innym osobom lub np. być kopią lokalną innego współpracownika. Każde zdalne repozytorium zawiera własny zestaw gałęzi.
Wyobraź sobie, że chcesz naprawić bug'a na konkretnym branch'u. Git pozwala na szybkie przełączenie się na zdalnego branch'a i pracę na nim.
Aby przełączyć się na zdalnego branch'a – utworzyć lokalnego branch'a będącego kopią zdalnego branch'a, musisz przejść kilka kroków:
- Najpierw pobierz zawartość gałęzi – użyj git fetch (pobranie stanu całego zdalnego repozytorium) lub pobierz stan tylko konkretnej zdalnej gałęzi (git fetch
), na którą chcesz się przełączyć, - następnie użyj git checkout -b
origin/ .
W nowszej wersji Gita można zastosować skróconą wersję git checkout
Git checkout -b – git create branch
Chcąc przełączyć się z jednego na drugiego branch'a możesz użyć komendy git checkout.
Komenda może przyjąć też parametr -b, który jest dosyć wygodny, ponieważ sprawia, że:
git checkout -b
git branch
== git checkout -b
Git checkout -b testowy-branch
Git checkout -b tak samo, jak git branch możesz użyć również do stworzenia nowej gałęzi:
- Na innej istniejącej gałęzi za pomocą git checkout
< nazwa bazowego branch> . - W oparciu o konkretnego commit'a (nie gałąź), możesz podać hash commit'a jako punkt początkowy –
git checkout -b . - Na konkretnym tagu, który posiadasz już w swoim repozytorium – git checkout -b
. - Z gałęzi ze zdalnego repozytorium – git checkout -b
origin/ .
Git switch branch – przełączanie się między branch'ami
Git od wersji 2.23 udostępniło nową możliwość przełączania się między branch'ami, jaką jest git switch.
Git switch branch ma zapewnić lepszy interfejs dzięki wyraźnej separacji nazewnictwa (switch – przełączać), co pomaga złagodzić zamieszanie programistów podczas korzystania z git checkout. Tak naprawdę można powiedzieć, że git switch jest siostrzaną komendą dla git checkout.

Powyższa grafika pokazuję podobieństwa i różnice pomiędzy git checkout a git switch.
Zauważ, że w przypadku tworzenia nowego branch'a flagą w git switch jest -c.
Git checkout -b – git create branch
Chcąc przełączyć się z jednego na drugiego branch'a możesz użyć komendy git checkout.
Komenda może przyjąć też parametr -b, który jest dosyć wygodny, ponieważ sprawia, że:
git checkout -b
git branch
== git checkout -b
Git checkout -b testowy-branch
Git checkout -b tak samo, jak git branch możesz użyć również do stworzenia nowej gałęzi:
- Na innej istniejącej gałęzi za pomocą git checkout
< nazwa bazowego branch> . - W oparciu o konkretnego commit'a (nie gałąź), możesz podać hash commit'a jako punkt początkowy –
git checkout -b . - Na konkretnym tagu, który posiadasz już w swoim repozytorium – git checkout -b
. - Z gałęzi ze zdalnego repozytorium – git checkout -b
origin/ .
Git checkout | Git switch – przełączanie się między gałęziami – podsumowanie
W ramach tego materiału przećwiczyliśmy przełączanie się między gałęziami za pomocą git checkout oraz tworzenie nowych gałęzi używając git checkout -b. Poznaliśmy również alternatywę dla git checkout, jaką jest git switch.
Jeżeli chcesz kontynuować swoją przygodę z gitem – to zapraszam do dodatkowych materiałów:
→ ZOBACZ 👉: Git tutorial | stash, rebase, commit, merge, checkout, push i clone

