Git i GitHub to jedne z najważniejszych narzędzi w arsenale każdego programisty i devopsa. Umożliwiają śledzenie zmian w kodzie, zarządzanie projektami oraz współpracę w zespołach. W tym artykule omówimy podstawowe zasady, komendy oraz pokażemy, jak skonfigurować projekt w Visual Studio Code.
Zapisy na webinar z Proxmoxa!
Zapraszamy na wyjątkowy webinar poświęcony wirtualizacji serwerów i sieci z wykorzystaniem Proxmox. Podczas spotkania wyjaśnimy, czym jest wirtualizacja i jak działa, a także pokażemy, jak rozpocząć swoją przygodę z tą technologią.
Warsztaty odbędą się 10 lutego o 13:00! Nie przegap!
Zapisy na: https://asdevops.pl/warsztaty/
Czym jest Git i GitHub?
Git
Git to rozproszony system kontroli wersji, który pozwala na śledzenie zmian w plikach projektu. Każda zmiana w kodzie jest zapisywana jako tzw. commit, co umożliwia cofnięcie się do wcześniejszej wersji projektu w razie potrzeby. Git działa lokalnie, co oznacza, że większość operacji odbywa się na Twoim komputerze, bez konieczności połączenia z internetem. Dzięki temu jest szybki i niezawodny.
Instalacja git:
Debian/Ubuntu: apt install git
RHEL: dnf install git
GitHub
GitHub to platforma, która rozszerza możliwości Gita, oferując przechowywanie repozytoriów w chmurze, narzędzia do współpracy zespołowej oraz funkcje zarządzania projektami. GitHub umożliwia także łatwe dzielenie się kodem z innymi, przeglądanie historii zmian w interfejsie webowym oraz tworzenie Pull Requestów, które ułatwiają wprowadzanie i przeglądanie zmian w projekcie.
Podstawowe pojęcia
- Repozytorium (repo): To główny katalog, w którym przechowywany jest kod projektu oraz cała historia zmian. Może być lokalne (na Twoim komputerze) lub zdalne (np. na GitHubie).
- Commit: Jest to „zdjęcie” bieżącego stanu projektu, które zapisuje zmiany wprowadzone od ostatniego commitu. Każdy commit ma unikalny identyfikator oraz opis, co ułatwia ich przeglądanie.
- Branch (gałąź): Gałęzie pozwalają pracować nad różnymi wersjami projektu jednocześnie. Na przykład, możesz utworzyć gałąź dla nowej funkcji, nie wpływając na główną wersję kodu.
- Merge: Operacja łącząca zmiany z jednej gałęzi do innej. Zwykle używana do wprowadzania ukończonych funkcji lub poprawek do głównej gałęzi projektu.
- Pull Request (PR): To mechanizm używany na GitHubie do zgłaszania zmian w projekcie. Umożliwia przeglądanie kodu przez innych członków zespołu przed jego zatwierdzeniem.
- Remote (zdalne repozytorium): Repozytorium przechowywane na platformie takiej jak GitHub, które umożliwia współdzielenie projektu z innymi programistami.
Podstawowe komendy Git
Inicjalizacja repozytorium
Pierwszym krokiem w pracy z Git jest utworzenie repozytorium. Komenda git init tworzy ukryty katalog .git, w którym przechowywane są wszystkie informacje o historii projektu.
git init
Dodawanie plików do obszaru staging
Aby zapisać zmiany w historii, musisz najpierw dodać je do obszaru staging. Staging to etap, w którym przygotowujesz wybrane zmiany do zatwierdzenia (commit). Możesz dodać pojedynczy plik lub wszystkie zmienione pliki.
git add [plik] # Dodaje konkretny plik
git add . # Dodaje wszystkie zmienione pliki
Zapisanie zmian (commit)
Po dodaniu plików do stagingu, możesz zapisać zmiany w historii za pomocą komendy git commit. Pamiętaj, aby dodać opis, który jasno wyjaśnia, co zostało zmienione.
git commit -m "Opis zmian"
Sprawdzenie statusu repozytorium
Komenda git status pozwala sprawdzić, które pliki zostały zmienione, a które dodano do stagingu. To świetne narzędzie, aby upewnić się, że niczego nie przeoczyłeś.
git status
Wyświetlenie historii commitów
Jeśli chcesz zobaczyć wszystkie zapisane zmiany w projekcie, użyj git log. Wyświetla ona listę commitów wraz z ich identyfikatorami, datami i opisami.
git log
Praca z gałęziami
Gałęzie to podstawowe narzędzie do pracy nad różnymi wersjami projektu. Możesz utworzyć nową gałąź, przełączyć się na nią, a następnie połączyć ją z innymi gałęziami.
Utworzenie nowej gałęzi: git branch [nazwa-gałęzi]
Przełączenie się na inną gałąź: git checkout [nazwa-gałęzi]
Połączenie gałęzi: git merge [nazwa-gałęzi]
Zasady pracy z Git i GitHub
Code review
Współpraca w zespole wymaga regularnych przeglądów kodu. Używaj Pull Requestów, aby umożliwić innym sprawdzenie Twojej pracy przed wprowadzeniem jej do głównej gałęzi.
Regularne commity
Często zapisuj zmiany w postaci commitów. Dzięki temu możesz łatwo śledzić postęp pracy i cofnąć się do poprzednich wersji, jeśli zajdzie taka potrzeba. Unikaj zbyt dużych commitów – powinny one dotyczyć jednej konkretnej zmiany lub funkcji.
Praca na gałęziach
Zawsze twórz nowe gałęzie dla nowych funkcji lub poprawek. Dzięki temu główna wersja projektu (zwykle main
lub master
) pozostaje stabilna i gotowa do użycia.
Sprawdzaj status repozytorium
Regularne używanie git status
pozwala uniknąć pomyłek, takich jak zapomnienie o dodaniu ważnych plików do stagingu.
Synchronizuj zmiany
Przed rozpoczęciem pracy pobierz najnowsze zmiany z zdalnego repozytorium (git pull
). Dzięki temu unikniesz konfliktów i pracy na nieaktualnej wersji kodu.
Zadanie praktyczne: Konfiguracja projektu w Visual Studio Code
Krok 1: Instalacja Git
Pobierz Git z oficjalnej strony git-scm.com i zainstaluj go na swoim komputerze. Po instalacji sprawdź wersję Gita, aby upewnić się, że działa poprawnie:
git --version
Krok 2: Instalacja Visual Studio Code
Pobierz i zainstaluj VS Code z code.visualstudio.com. To popularne narzędzie do edycji kodu, które oferuje wiele rozszerzeń, takich jak „GitLens”, które ułatwiają zarządzanie projektami Git.
Krok 3: Inicjalizacja projektu
Otwórz projekt w VS Code i otwórz terminal (Ctrl + ~
). Następnie zainicjalizuj repozytorium:
git init
Krok 4: Powiązanie z GitHubem
Utwórz nowe repozytorium na GitHubie i skopiuj jego adres URL. Następnie powiąż lokalne repozytorium ze zdalnym:
git remote add origin [url-repozytorium]
Krok 5: Pierwszy commit i push
Dodaj pliki do stagingu i zapisz zmiany w historii:
git add .
git commit -m "Initial commit"
Wyślij zmiany na GitHuba:
git push -u origin main
Krok 6: Praca na gałęziach
Twórz nowe gałęzie dla każdej nowej funkcji lub poprawki. Na przykład:
git checkout -b feature/new-feature
Po zakończeniu pracy, wyślij gałąź na GitHuba:
git push origin feature/new-feature