GitHub — a legnagyobb webes platform Git-adattárak hosztolására, együttműködésen alapuló fejlesztésre és folyamatautomatizálásra, a Microsoft tulajdonában. Nemcsak kód verziókövetéssel történő tárolását kínálja, hanem egy teljes projektmenedzsment eszközkészletet is: Issue Tracking, Pull Request kódáttekintéssel, Actions CI/CD-hez és Wiki dokumentációhoz. A GitHub, 2024 adatai szerint a platform több mint 100 millió fejlesztőt és 420 millió adattárat számlál.
Főbb pontok
GitHub — egy webszolgáltatás Git-adattárak tárolására és közös munkára, amelyet 2008-ban alapított Tom Preston-Werner, Chris Wanstrath és P.J. Hyett. 2018-ban a vállalatot a Microsoft felvásárolta 7,5 milliárd dollárért. A platform webes felületet biztosít az összes Git-művelethez, és szociális funkciókat ad hozzá: fork-ok, csillagok, feliratkozások, kódáttekintés és beépített folyamatos integrációs rendszer.
A GitHub legfőbb különbsége a versenytársakkal szemben — a nyitott ökoszisztéma és a legnagyobb fejlesztői közösség. A GitHubon található az Android, Kubernetes, React, Swift, Kotlin és több ezer más nyílt forráskódú projekt forráskódja. Ez a platformot nemcsak kódtároló eszközzé, hanem a fejlesztők közösségi hálózatává is teszi: követhetők a projektek, megvitathatók a változtatások és pull request útján hozzájárulás adható.
A Microsoft 2024-es jelentése szerint naponta több mint 10 millió új Pull Request halad át a GitHubon, a havi aktív felhasználók száma pedig meghaladta a 100 milliót. A platform több mint 500 programozási nyelvet, fájlkiterjesztés alapján automatikus nyelvfelismerést és kódszintaxis-kiemelést támogat.
A GitHub funkcionalitása messze túlmutat az egyszerű Git-hosztoláson. A platform kínál: GitHub Actions — beépített CI/CD rendszer; GitHub Packages — csomag- és konténerregiszter; GitHub Codespaces — felhőalapú fejlesztői környezetek VS Code alapokon; GitHub Discussions — közösségi fórum; GitHub Security — Dependabot a függőségek automatikus frissítéséhez és sebezhetőségi vizsgálatokhoz; GitHub Copilot — AI-asszisztens kódíráshoz.
Szervezetek számára a GitHub GitHub Enterprise-t kínál — vállalati verziót saját hosztolással (GitHub Enterprise Server) vagy felhőalapú telepítéssel (GitHub Enterprise Cloud). A vállalati funkciók közé tartozik a SAML/SSO hitelesítés, tevékenység-naplózás, adattárbiztonsági irányelvek és 99,95%-os rendelkezésre állási SLA. Az Enterprise verziót olyan cégek használják, mint a Google, az Apple és az Airbnb.
A GitHub fontos jellemzője — a GitHub CLI (gh), amely lehetővé teszi a platform összes műveletének végrehajtását parancssorból a webes felület használata nélkül. A gh segítségével adattárak hozhatók létre, Issues kezelhetők, Pull Request-ek tekinthetők meg és Actions indíthatók közvetlenül a terminálból, ami felgyorsítja a parancssorhoz szokott fejlesztők munkáját.
| Funkció | Rendeltetés | Elérhetőség |
|---|---|---|
| Actions | CI/CD és automatizálás | Ingyenes 2000 perc/hó |
| Codespaces | Felhőalapú IDE VS Code alapokon | Fizetős, 60 óra/hó ingyen |
| Packages | Csomagok és Docker képek hosztolása | Ingyenes 500 MB |
| Dependabot | Függőségek automatikus frissítése | Ingyenes nyilvános adattárakhoz |
| Pages | Statikus webhelyek hosztolása | Ingyenes |
Pull Request (PR) — a változtatások projektbe történő bevezetésének fő mechanizmusa a GitHubon. A fejlesztő létrehoz egy ágat a változtatásokkal, közzéteszi a GitHubon, és egyesítési kérelmet (Pull Request) küld a főágba. A projekt többi résztvevője látja az ágak közötti különbséget (diff), megjegyzéseket fűzhet a kód egyes soraihoz, változtatásokat javasolhat, és jóváhagyhatja vagy elutasíthatja a kérelmet.
A kódáttekintési folyamat a GitHubon a PR köré épül. Minden megjegyzés a diff egy adott sorához kapcsolódik, és három típusú lehet: Comment (szokásos megjegyzés), Request Changes (javításokat igényel) és Approve (jóváhagyás). A változtatások elvégzése után a szerző új commit-tal frissíti a PR-t, és az áttekintési folyamat megismétlődik. Amikor az összes észrevételt elhárították és a PR-t jóváhagyták, a változtatások beleolvadnak a célágba.
# Feature ág létrehozása és push
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# PR létrehozása CLI-n keresztül
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# PR megtekintése és merge
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
A GitHub támogatja az ágak védelmét (branch protection rules): letiltható a közvetlen push a main-be, kötelező jóváhagyások száma előírható a merge előtt, Actions-ellenőrzések indíthatók és az ág naprakészsége megkövetelhető az egyesítés előtt. Az ágvédelem a Settings → Branches menüben konfigurálható, és kötelező gyakorlat éles projekteknél, megakadályozva az instabil kód véletlen bekerülését a főágba.
GitHub Actions — egy beépített CI/CD platform, amely lehetővé teszi a munkafolyamatok automatizálását közvetlenül az adattárban. A workflow-t YAML-fájlokban írják le, amelyek a .github/workflows/ könyvtárban találhatók. Minden workflow egy vagy több job-ból áll, amelyek runner-eken — Linux, Windows vagy macOS rendszerű virtuális gépeken — futnak.
Az Actions eseményvezérelt modellt támogat: a workflow push, PR létrehozása, release közzététele, ütemezés vagy webhook útján indul el. Ez lehetővé teszi az építés, tesztfuttatás, statikus kódelemzés, alkalmazásboltokban történő közzététel és szerverre telepítés automatizálását a fejlesztő részvétele nélkül. Alább egy Android projekthez tartozó workflow példa látható:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Az Actions ökoszisztéma több mint 20 000 kész akciót tartalmaz a GitHub Marketplace-en. Népszerű akciók: checkout (adattár klónozása), setup-java/setup-node/setup-python (környezet beállítása), upload-artifact (build-összetevők mentése), cache (függőségek gyorsítótárazása), slack-notify (értesítések küldése Slackbe). Az Actions támogatja a mátrix build-et is — egyidejű futtatást több operációs rendszer vagy nyelv verzióján.
Issues — a beépített feladatkövető rendszer a GitHubon. Minden Issue rendelkezik címmel, leírással, címkékkel (labels), kijelölt végrehajtókkal (assignees), mérföldkövekkel (milestones) és kapcsolódó Pull Request-ekkel. Az Issues sablonozható — a hibabejelentésekhez, funkciókérésekhez vagy kérdésekhez különböző sablonok használatosak, amelyek létrehozáskor automatikusan behelyettesítődnek.
GitHub Projects (korábban Projects Beta) — egy táblaalapú projektmenedzsment eszköz, hasonló a Jirához és a Trellóhoz. A Projects támogatja az egyéni mezőket (állapot, prioritás, sprint), kapcsolatot az Issues-szel és Pull Request-ekkel, a kártyák automatikus mozgatását a feladat állapotának változásakor, valamint analitikát burndown chart formájában. A Projects két módban érhető el: Table (táblázatos nézet) és Board (kanban tábla).
A kiadások kezeléséhez a GitHub Milestones funkciót kínál — közös cél és határidő által összefogott Issue- és PR-csoportokat. Minden mérföldkő mutatja a végrehajtás előrehaladását: hány feladat van nyitva, hány zárva, és hogy a határidőt betartják-e. A Milestones integrálódik a Releases-szel — kiadás közzétételekor kapcsolható egy mérföldkőhöz, és automatikusan változáslista generálható a CHANGELOG-ban a lezárt Issue-ok alapján.
GitHub Pages — ingyenes hosztolás statikus webhelyekhez, amely automatikusan közzéteszi az adattár tartalmát a https://username.github.io/repository címen. A Pages támogatja a HTML, CSS, JavaScript és a statikus generátorokat: Jekyll (beépített), Hugo, Next.js (export) és MkDocs. A konfiguráció magában foglalja az ág és könyvtár kiválasztását a közzétételhez, valamint az egyéni domain támogatását.
Műszaki dokumentációhoz a GitHub Wiki funkciót kínál — beépített wiki rendszert, amely szintén Git-adattárként tárolódik. A Wiki támogatja a Markdown-t, és lehetővé teszi az oldalak szerkesztését mind a webes felületen, mind pedig lokálisan a wiki adattárba push útján. Minden Wiki-oldal saját változtatási előzményekkel rendelkezik, ami kényelmes az API, architektúra és projektfolyamatok dokumentálásához.
A GitHub Pages + Jekyll kombináció népszerű megoldás dokumentációs webhelyekhez. A Jekyll automatikusan konvertálja a Markdown-fájlokat statikus HTML-oldalakká, támogatja a témákat, navigációt és keresést. Például az Android Developers dokumentációja korábban Jekyll-t használt a GitHub Pages-en, most pedig — egy belső platformot, de több ezer nyílt forráskódú projekt továbbra is ezt a kombinációt használja a webhelyeihez.
GitHub CLI (gh) lehetővé teszi a platform összes műveletének végrehajtását parancssorból: adattárak létrehozása, Issues kezelése, Pull Request-ek megtekintése és jóváhagyása, Actions indítása. A gh repo create my-project --public parancs létrehoz egy távoli adattárat és összekapcsolja a lokálissal, a gh pr create pedig Pull Request-et hoz létre az aktuális ágból. A CLI felgyorsítja azoknak a fejlesztőknek a munkáját, akik a terminált részesítik előnyben a webes felülettel szemben.
GitHub REST API és GraphQL API programozott hozzáférést biztosít a platform összes funkciójához: Issue létrehozása, felhasználók kezelése, statisztikák lekérése és Actions kezelése. A GraphQL API összetett lekérdezésekhez előnyösebb, mivel lehetővé teszi, hogy egyetlen lekérdezéssel csak a szükséges mezőket kapjuk meg. A REST API sebességkorlátja — 5000 lekérdezés óránként hitelesített felhasználók számára. Az API-t széles körben használják a GitHub külső CI-rendszerekkel és belső DevOps eszközökkel való integrációjára.
GitHub Gist — szolgáltatás kódrészletek közzétételére teljes értékű adattár létrehozása nélkül. A Gist támogatja a szintaxiskiemelést, külső webhelyekre történő beágyazást és verzióelőzményeket. Minden Gist lehet nyilvános (megjelenik a keresésben) vagy titkos (csak linkkel érhető el). A Gist-et konfigurációk, naplók és kódpéldák gyors megosztására használják csapatkommunikációban, valamint a Pastebin fejlesztői megfelelőjeként.
Gyakran ismételt kérdések
GitHub a nyílt közösségre és a közösségi funkciókra (fork-ok, csillagok) helyezi a hangsúlyt. A GitLab erősebb beépített CI/CD-t és saját hosztolást (Self-Managed) kínál Actions-percek korlátozása nélkül.
GitHub Team felhasználónként havi 4 dollárba kerül, és korlátlan privát adattárakat, ágvédelmet és Actions-t (3000 perc) biztosít. Az ingyenes tarifa kis nyílt forráskódú projektekhez alkalmas.
Adattár létrehozásakor válassza a Private opciót a Public helyett. Privát adattárakban a kódot csak a meghívott résztvevők látják. Az ingyenes tarifán a privát adattárak legfeljebb 3 közreműködővel érhetők el.
GitHub Copilot — OpenAI Codex alapú AI-asszisztens, amely valós idejű kódkiegészítést kínál. VS Code-ban, JetBrains-ben és Neovim-ben működik, támogatja az összes népszerű programozási nyelvet.
Lépjen a Settings → Danger Zone → Delete this repository menüpontra. A törlés visszafordíthatatlan — az összes commit, Issue és Wiki törlődik helyreállítási lehetőség nélkül. Előtte győződjön meg arról, hogy rendelkezik biztonsági másolattal.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is