====== GitHub ====== GitHub to popularna platforma hostingowa dla [[kategoria:programowanie:github:repo|repozytoriów Git]], oferująca dodatkowe funkcje takie jak pull requesty, issue tracking, GitHub Actions (CI/CD), wiki oraz zarządzanie projektami. {{page>:szablon:gfx:terminal}} ===== Podstawowe funkcje ===== Repozytoria Git: przechowywanie kodu źródłowego i historii wersji. * Forkowanie i pull requesty: ułatwienie współpracy i proponowania zmian. * Issues: system zgłaszania i śledzenia błędów oraz zadań. * Actions: automatyzacja procesów (np. testów, buildów, deployów). * Wiki i README: dokumentacja bezpośrednio w repozytorium. * [[kategoria:programowanie:github:github_pages|GitHub Pages]]: hostowanie statycznych stron WWW z poziomu repozytorium. ===== Integracja z Bash ===== * Aliasowanie komend Git np. alias gs='git status' * Skrypty do automatycznego commitowania i pushowania. * Obsługa tokenów API w skryptach bashowych. * Integracja z webhookami (np. do powiadomień lub automatycznego deployu). ===== Zastosowania praktyczne ===== * Zarządzanie [[kategoria:programowanie:github:projekt|projektami]] open source. * Współpraca w zespołach developerskich. * Hostowanie portfolio programisty. * Automatyzacja procesów CI/CD (GitHub Actions, workflows). ===== Typowe komendy Git z GitHub ===== * Klonowanie repozytorium: git clone https://github.com/user/repo.git * Dodanie zdalnego repo: git remote add origin https://github.com/user/repo.git * Wysłanie zmian na GitHub ''git push -u origin main'' * Pobranie najnowszych zmian ''git pull origin main'' ===== Zastosowania praktyczne ===== * Zarządzanie projektami open source. * Współpraca w zespołach developerskich. * Hostowanie portfolio programisty. * Automatyzacja procesów: **CI** - Ciągła Integracja (Continuous Integration): Praktyka polegająca na regularnym (często kilka razy dziennie) integrowaniu zmian w kodzie, wprowadzanych przez różnych deweloperów, do wspólnego repozytorium. Jak działa: Po każdej integracji (czyli po każdym **commicie** do głównej gałęzi kodu), system CI automatycznie buduje projekt (np. kompiluje kod) i uruchamia zestaw automatycznych testów (np. testy jednostkowe, testy integracyjne). Cel: Szybkie wykrywanie i rozwiązywanie konfliktów oraz błędów integracyjnych. Dzięki temu problemy są identyfikowane na wczesnym etapie, zanim staną się trudniejsze i droższe do naprawienia. Zapewnia to, że główna gałąź kodu jest zawsze w stanie gotowym do wdrożenia. **CD** - Ciągłe Dostarczanie (Continuous Delivery) lub Ciągłe Wdrażanie (Continuous Deployment): Co to jest: To rozszerzenie Ciągłej Integracji, które automatyzuje kolejne etapy procesu dostarczania oprogramowania. Ciągłe Dostarczanie (Continuous Delivery): Oznacza, że kod, który przeszedł pomyślnie wszystkie testy w ramach CI, jest automatycznie przygotowywany i dostarczany do środowiska, z którego może być w dowolnym momencie wdrożony na produkcję. Wdrożenie na produkcję jest jednak manualną decyzją. Zespół ma pewność, że w każdej chwili może wydać nową wersję oprogramowania. Ciągłe Wdrażanie (Continuous Deployment): Idzie o krok dalej niż Ciągłe Dostarczanie. W tym przypadku, kod, który przeszedł wszystkie testy automatyczne, jest automatycznie wdrażany na środowisko produkcyjne, bez jakiejkolwiek interwencji człowieka. Wymaga to bardzo wysokiego poziomu zaufania do automatycznych testów i całego potoku CI/CD. ===== Linki zewnętrzne ===== * https://github.com GitHub – Strona główna * * https://docs.github.com Oficjalna dokumentacja GitHub * * https://cli.github.com GitHub CLI (gh) {{indexmenu>:kategoria:programowanie#1}} {{page>:szablony:more}} {{pagebox>:pagebox:kategorie}}