🌞 GIT - kontrola wersji
W tym module poznasz podstawowe informacje o systemie kontroli wersji git oraz nauczysz się, jak połączyć się z repozytorium zdalnym. Omówimy instalację gita, konfigurację użytkownika, klonowanie repozytorium oraz wysyłanie i pobieranie zmian.
Czym jest git?
Git to rozproszony system kontroli wersji, który umożliwia śledzenie zmian w plikach, współpracę między programistami i zarządzanie kodem źródłowym w sposób efektywny i bezpieczny. Jest szeroko stosowany w projektach open-source oraz w firmach na całym świecie.
Kluczowe cechy gita
- Rozproszony system – każdy użytkownik ma pełną kopię repozytorium,
- Wersjonowanie – śledzenie zmian i możliwość powrotu do wcześniejszych wersji kodu,
- Gałęzie (branches) – możliwość pracy nad różnymi wersjami kodu równocześnie,
- Integracja z platformami zdalnymi – np. GitHub, GitLab, Bitbucket.
Połączenie z repozytorium zdalnym
Aby połączyć się z repozytorium zdalnym, musisz wykonać następujące kroki:
1. Instalacja gita
Jeśli nie masz jeszcze gita, możesz go zainstalować:
-
Linux (Ubuntu/Debian):
sudo apt update sudo apt install git -
Windows: Pobierz instalator ze strony git-scm.com i zainstaluj.
-
macOS:
brew install git
Po instalacji sprawdź wersję:
git --version
2. Konfiguracja użytkownika
Przed rozpoczęciem pracy skonfiguruj swoje dane:
git config --global user.name "Twoje Imię"
git config --global user.email "twoj@email.com"
Link do Twojego repozytorium zdalnego dostaniesz od prowadzącego zajęcia!
3. Klonowanie repozytorium zdalnego
Jeśli chcesz pobrać istniejące repozytorium, użyj komendy:
git clone https://github.com/uzytkownik/nazwa-repozytorium.git
git clone git@github.com:uzytkownik/nazwa-repozytorium.git
4. Połączenie istniejącego katalogu z repozytorium
Jeśli masz już lokalny projekt i chcesz połączyć go z repozytorium zdalnym:
git init
git remote add origin https://github.com/uzytkownik/nazwa-repozytorium.git
git remote -v
5. Wysyłanie zmian do repozytorium
Dodaj pliki do wersjonowania:
git add .
git commit -m "Pierwszy commit"
git push -u origin main
6. Pobieranie zmian z repozytorium
Aby pobrać najnowsze zmiany z repozytorium:
git pull origin main
Teraz masz podstawową wiedzę na temat gita i połączenia się z repozytorium zdalnym. Możesz rozpocząć pracę nad swoimi zadaniami!
Nowoczesne IDE mają moduły do obsługi kontroli wersji, więc możemy używać interfejsu graficznego zamiast poleceń w terminalu.
Praca z gałęziami
Gałęzie (branches)
Gałęzie pozwalają na jednoczesne rozwijanie różnych funkcji projektu bez wpływania na główną wersję kodu. To bardzo użyteczne, gdy kilka osób pracuje nad różnymi aspektami projektu lub gdy testujesz nowe funkcjonalności przed ich wdrożeniem do głównej wersji kodu.
Tworzenie nowej gałęzi:
git branch nazwa-galezi
Przełączanie się na nową gałąź:
git checkout nazwa-galezi
git switch nazwa-galezi
Tworzenie i przejście na nową gałąź jednocześnie:
git checkout -b nazwa-galezi
Merging (scalanie gałęzi):
Aby scalić zmiany z innej gałęzi do głównej (main):
git checkout main
git merge nazwa-galezi
Revert i Reset
Wycofywanie zmian
Błędy zdarzają się każdemu. Dlatego git oferuje kilka metod na ich cofnięcie.
Cofnięcie ostatniego commita:
git revert HEAD
Jeśli chcesz całkowicie usunąć commit:
git reset --hard HEAD~1
Usunięcie zmian w plikach przed commitem:
git checkout -- nazwa-pliku
Stash – przechowanie tymczasowych zmian
Przechowywanie tymczasowych zmian (stash)
Czasami pracujemy nad jakąś zmianą, ale musimy pilnie przełączyć się na inną gałąź. W takich przypadkach możemy użyć stash.
Schowanie zmian:
git stash
Przywrócenie ostatniego stasha:
git stash pop
Sprawdzanie historii commitów
Historia commitów
Historia commitów pomaga w śledzeniu zmian w kodzie, co jest szczególnie przydatne w zespołach.
Podstawowa historia commitów:
git log
Skrócona i czytelniejsza wersja:
git log --oneline --graph --all
Usuwanie plików z repozytorium i .gitignore
.gitignore
Nie zawsze chcemy, aby dany plik był częścią repozytorium.
Usunięcie pliku z repozytorium i lokalnego systemu plików:
git rm nazwa-pliku
Usunięcie pliku tylko z repozytorium, ale zachowanie go lokalnie:
git rm --cached nazwa-pliku
.gitignore
Plik .gitignore pozwala ignorować określone pliki i katalogi, aby nie były one dodawane do repozytorium.
Przykład .gitignore:
# Ignorowanie plików tymczasowych edytora
*.swp
*.swo
# Ignorowanie katalogu build
/build/
# Ignorowanie plików konfiguracyjnych
config.yaml
.env
.gitignore powinien być umieszczony w głównym katalogu repozytorium.
git LFS (Large File Storage)
git LFS
Jeśli pracujesz z dużymi plikami, git może nie być optymalny do ich przechowywania. Git LFS (Large File Storage) to rozszerzenie gita, które pozwala przechowywać duże pliki osobno od kodu źródłowego.
Instalacja git LFS:
# Na systemach Linux/macOS
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs
# Na Windows
choco install git-lfs
Używanie git LFS:
git lfs install
git lfs track "*.psd"
.psd będą przechowywane w git LFS zamiast w standardowym repozytorium gita.
Dzięki temu repozytorium pozostaje lekkie, a duże pliki są przechowywane w zoptymalizowany sposób.