9.0 Trochę historii
Od momentu swojego powstania narzędzie Git DVCS miało domyślną gałąź o nazwie master. Każde repozytorium Git miało gałąź master, jeśli programista nie podejmował jawnych działań, aby ją usunąć, co zdarzało się rzadko, ponieważ gałąź master odgrywa ważną rolę w świecie tworzenia oprogramowania.
Użycie terminów master i slave (naczelnik i sługa) w branży komputerowej przyciągnęło powszechną uwagę latem 2020 roku w związku z licznymi protestami i rosnącymi niepokojami społecznymi. W trakcie publicznej dyskusji pojawiło się kilka alternatyw dla master, takich jak default i primary. Jednak najbardziej popularnym terminem stał się main.
GitHub podjął działania i zrezygnował z terminu master podczas inicjalizacji repozytorium Git. Przełączenie GitHub z master na main jest możliwe w ustawieniach konta Repositories lub za pomocą komendy:
$ git branch -m master main
W wykładach dalej jest używany termin master. Więcej informacji o przejściu można znaleźć w poniższych linkach:
9.1 Co to jest Git i po co on jest
Git to potężny system kontroli wersji, używany do śledzenia zmian w kodzie źródłowym podczas tworzenia oprogramowania. Pozwala programistom przechowywać różne wersje plików i koordynować pracę kilku osób nad wspólnym projektem.
Podstawowe pojęcia Git:
Repozytorium
Repozytorium (lub "repo") to miejsce, gdzie przechowywana jest cała historia projektu, w tym wszystkie zmiany i wersje plików. W Git repozytorium obejmuje katalog roboczy, indeks (lub etap) i bazę danych obiektów.
Commity
Commit to zapisany stan projektu. Każdy commit w Git zawiera informacje o tym, jakie zmiany zostały wprowadzone w projekcie, przez kogo i kiedy. Commity tworzą historię projektu i pozwalają powrócić do każdej wcześniejszej wersji.
Gałęzie
Gałąź (branch) to niezależna linia rozwoju. Domyślnie Git tworzy gałąź main (wcześniej master). Można tworzyć nowe gałęzie do rozwoju nowych funkcji lub poprawek, a potem scalać je z powrotem do głównej gałęzi.
Scalanie i rebase
Scalanie (merge) i rebase to dwa sposoby integrowania zmian z jednej gałęzi do innej. Scalanie łączy historie dwóch gałęzi, tworząc nowy commit, a rebase przenosi commity jednej gałęzi na wierzch innej, zmieniając historię commitów.
9.2 Podstawowe komendy Git
Oto tabela z podstawowymi komendami Git do zarządzania wersjami:
| Komenda | Opis |
|---|---|
| git init | Inicjalizuje nowe repozytorium Git w bieżącym katalogu. |
| git clone | Klonuje repozytorium z URL do nowego katalogu. |
| git add | Dodaje pliki do indeksu do następnego commita. |
| git commit | Zatwierdza przygotowane zmiany w repozytorium. |
| git push | Wysyła zmiany z lokalnego repozytorium do zdalnego. |
| git pull | Aktualizuje bieżącą gałąź z najnowszą wersją ze zdalnego repozytorium. |
| git branch | Pokazuje, tworzy lub usuwa gałęzie. |
| git merge | Scala zmiany z innej gałęzi do bieżącej gałęzi. |
| git rebase | Przenosi zmiany na nową bazę (zwykle to inna gałąź). |
Te komendy reprezentują podstawowe narzędzia pracy w Git, umożliwiając zarządzanie zmianami kodu, gałęziami i scalaniami w projektach dowolnej wielkości. Szczegółowo omówimy je w kolejnych wykładach.
9.3 Trzy miejsca przechowywania kodu
Kiedy będziesz używać systemu kontroli wersji dla swojego kodu, twój kod, krótko mówiąc, będzie przechowywany w trzech miejscach:
1. Zdalne repozytorium:
To centralne miejsce do przechowywania twojego kodu, zazwyczaj umieszczone na takich platformach jak GitHub, GitLab, czy Bitbucket. Zapewniają one centralne przechowywanie kodu i są podstawą dla współpracy.
Zdalne repozytoria pozwalają programistom dzielić się swoimi zmianami, synchronizować wysiłki i prowadzić historię zmian projektu. Zdalne repozytorium także służy jako punkt integracji dla automatyzacji procesów takich jak budowa, testowanie i wdrażanie aplikacji.
2. Lokalne repozytorium:
Lokalne repozytorium to twoja osobista kopia kodu, przechowywana na twoim komputerze. W tym repozytorium możesz wykonywać wszystkie operacje z Git (commity, gałęzie, scalania) bez konieczności podłączenia do internetu.
Lokalne repozytoria pozwalają programistom pracować w izolacji od kolegów, eksperymentować, tworzyć nowe funkcje lub naprawiać błędy, zanim zmiany zostaną połączone (scalone) i wysłane do zdalnego repozytorium.
3. Katalog roboczy:
Katalog roboczy na twoim komputerze zawiera aktualne pliki projektu, nad którymi obecnie pracujesz. To miejsce, gdzie możesz oglądać i edytować pliki, dodawać nowe funkcje lub naprawiać błędy.
Po wprowadzeniu zmian, możesz dodawać je do indeksu (staging area), a następnie zatwierdzać w lokalnym repozytorium. Katalog roboczy jest powiązany z bieżącą gałęzią w twoim repozytorium, a zmiana gałęzi zmienia zawartość katalogu roboczego.
Te komponenty razem zapewniają potężną infrastrukturę do zarządzania kodem źródłowym, pozwalając programistom zarządzać historią projektu, współpracować i dzielić się odpowiedzialnością za kod.
9.4 GitHub — najpopularniejszy darmowy hosting repozytoriów
GitHub to największa platforma internetowa do hostingu kodu źródłowego, używająca systemu kontroli wersji Git. Założona w 2008 roku, szybko stała się jednym z kluczowych narzędzi dla programistów na całym świecie.
GitHub pozwala użytkownikom tworzyć repozytoria do zarządzania projektami, kontrolować i śledzić zmiany w kodzie, współpracować z innymi programistami i prowadzić rozwój w otwarty sposób lub prywatnie. Oferuje takie funkcje jak forki, gałęzie, pull-requesty i scalania, co pozwala programistom łatwo współpracować nad projektami.
GitHub obejmuje także funkcjonalność do śledzenia problemów, żądań funkcji, zarządzania zadaniami i wiki dla każdego projektu. Platforma integruje się z wieloma narzędziami i usługami, oferując obszerne możliwości automatyzacji tworzenia oprogramowania, testowania i wdrażania aplikacji.
GitHub wspiera rozległą społeczność programistów, w której aktywnie omawiane są najlepsze praktyki programistyczne, zarządzanie projektami i wiele więcej. Czyni to z niej nie tylko narzędzie do zarządzania projektami, ale i centrum społeczności, gdzie programiści mogą dzielić się wiedzą i doświadczeniem.
9.5 Rejestracja na GitHub
Krok 1. Wejdź na https://github.com
Krok 2. Zarejestruj się…
Krok 3. Kliknij przycisk "New" aby utworzyć nowe repozytorium.
Krok 4. Podaj nazwę repozytorium i skonfiguruj jego ustawienia.
Krok 5. Dodaj do projektu plik README — przyda nam się w przyszłości.
Krok 6. Kliknij "Create repository".
GO TO FULL VERSION