Czas na kolejny wpis 🙂
W poprzednim wpisie opisywałem komenę commit (tutaj). W tym wpisie chciałbym się skupić na kolejnych 3 bardzo ważnych komendach w GIT, a mianowicie: git push, git pull oraz git fetch.
Zacznę od wyjaśnienia każdej z komend.
Git push – służy do wysyłania zakomitowanych (zatwierdzonych) wersji do repozytorium zdalnego.
Git pull – służy do ściągnięcia nowszych commitów ze zdalnego repozytorium do nas lokalnie.
Git fetch – odświeża informację o historii commitów z repozytorium zdalnego. Dzięki tej komendzie będziemy w stanie ściągnąć informację, czy najnowszy commit, który mamy lokalnie jest faktycznie najnowszy, czy na repozytorium zdalnym pojawiło się coś nowego.
Mowa o wrzucaniu i ściąganiu kodu do repozytorium znajdującym się na serwerze, ale jakim serwerze? Serwerze, na którym można składować repozytorium gita w wersji minimalnej. Może być to inny komputer lub inny dysk podpięty do komputera, lub inny katalog na tym samym dysku. W wersji bardziej profesjonalnej może być to np. dedykowany serwer, gdzie są przechowywane repozytoria lub usługa taka jak GitHub.
Poniżej przedstawię jak utworzyć na GitHub nowe repozytorium, podpiąć się do niego i wysłać tam nasze lokalne commity.
Do roboty 🙂
Akt 1. Tworzenie nowego repozytorium na GitHub.
Zacznijmy od zalogowania się do konta na GitHub, następnie w prawym górnym menu wybierzmy opcję “Your Repositories”.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/1-3-1024x377.png)
Następnie wybieramy opcję “New”.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/2-2-1024x396.png)
Musimy podać nazwę naszego repozytorium, zdecydować, czy nasze repozytorium ma być publiczne dla wszystkich, czy prywatne i dostęp do niego będą miały tylko osoby, którym nadamy odpowiednie uprawnienia. Dodatkowo możemy dodać do nowo tworzonego repozytorium np. plik “readme”, w którym zwykle przechowuje się jakieś podstawowe informacje o zawartości repozytorium lub plik “gitignore”, w którym można zdefiniować rozszerzenia plików, które chcemy, aby nie były śledzone w naszym repozytorium (o pliku gitignore będzie w kolejnych wpisach).
Dodatkowo świetną sprawą jest możliwość zdefiniowania jakiego rodzaju licencja obowiązuje na projekt, który tworzymy. Dzięki temu osoby, które będą chciały skorzystać z naszego projektu, czy kodu w nim zawartym, będą wiedziały, czy mogą go użyć np. do projektów komercyjnych.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/3-3-1024x623.png)
Mamy już nasze repozytorium 🙂 Możemy je klonować. W tym celu możemy skorzystać z linku, który został wygenerowany.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/4-3-1024x620.png)
Akt 2. Klonowanie naszego repozytorium.
W tym celu wykonajmy komendę git clone w konsoli. Następnie przechodzimy do katalogu naszego repozytorium.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/5-3.png)
Akt 3. Tworzenie commitu.
Stwórzmy plik w naszym repozytorium, w którym wpiszemy tekst “hello world”, a następnie zróbmy commit.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/6-4.png)
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/7-4.png)
Akt 4. Git push.
Wywołujemy komendę git push i oto nasz commit ląduje na GitHub.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/8-5.png)
Mamy nasze zmiany na serwerze !!! Sprawdźmy jak to wygląda na GitHub.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/9-5-1024x593.png)
Zróbmy sobie nowy katalog, w którym ściągniemy nasze repozytorium ponownie, stworzymy drugi commit, a następnie wrócimy do pierwszego katalogu, aby zaprezentować pozostałe 2 komendy. Zasymulujemy tutaj sytuację, gdy do repozytorium dodaje coś więcej niż jedna osoba lub robimy to np. z różnych komputerów.
Tworzymy nowy katalog o nazwie “Komputer2” i tam klonujemy nasze repozytorium.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/10-4.png)
Dodajmy kolejną linijkę do pliku tekstowego o treści “Witaj świecie”.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/11-4.png)
Powtórzmy operację, stwórzmy commit i zróbmy push na serwer.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/12-4.png)
Sprawdźmy nasz GitHub.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/13-4-1024x549.png)
Faktycznie na stronie pojawił się nasz “drugi commit”.
Akt 5. Pobieranie zmian ze zdalnego repozytorium.
Wróćmy do naszego katalogu C:/Repozytoria/MojePierwszeRepozytorium i wywołajmy komendę git status. Można zobaczyć, że git twierdzi, że jesteśmy aktualni z serwerem “Your branch is up to date with ‘origin/master'”. (jest to nieprawda, bo przecież na serwerze znajduje się “drugi commit”, ale wrócimy do tego później).
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/14-4.png)
Wykonajmy w takim razie komendę git pull, która ma za zadanie ściągnąć najnowsze wersje ze zdalnego repozytorium.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/15-4.png)
Jak widać zostały zaciągnięte zmiany. Możemy sprawdzić jaki faktycznie commit jest ostatni wywołując komendę “git log”.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/16-3.png)
Udało się wysłać i pobrać zatwierdzone (commit-owane) wersje ze zdalnego repozytorium za pomocą “git push” i “git pull”.
To nie wszystko. Wspominałem jeszcze o trzeciej komendzie git fetch, ale nie pokazałem jak ona działa.
Cofnijmy się do momentu kiedy robiliśmy git status i nasz git twierdził, że jesteśmy aktualni “Your branch is up to date with ‘origin/master'”, co było nieprawdą. Komenda git fetch odświeża informację pomiędzy repozytorium zdalnym, a lokalnym, ale nie ściąga commitów lokalnie.
Wykonajmy w takim razie git fetch, gdy na serwerze znajduje się nowszy commit i nasza lokalna wersja nie jest najaktualniejsza.
![](https://chcezostacprogramista.pl/wp-content/uploads/2021/03/17-2.png)
Jak widać na powyższym zrzucie ekranu wykonuję komendę git status. Git twierdzi, że wszystko jest aktualne. Następnie wykonuję git fetch i ponownie git status, wtedy Git zaczyna jednak mówić, że jestem jeden commit do tyłu w stosunku do zdalnego repozytorium.
Dlaczego się tak dzieje, że za pierwszym wywołaniem git status Git twierdził, że wszystko jest aktualne??
To bardzo proste, ponieważ nie ma w Git czegoś takiego, jak sprawdzanie na bieżąco, czy coś się nie zmieniło na serwerze. Dopiero wywołanie odpowiedniej komendy powoduje wymianę informacji (odświeżenie) pomiędzy lokalnym, a zdalnym repozytorium.
Ok, to tyle 🙂 Mam nadzieję, że zaprzyjaźnisz się z git pull i git push i będziesz używał tych komend (zarówno w konsoli, jak i w programach graficznych) codziennie, a Git stanie się nieodzowną częścią Twojej pracy każdego dnia.