Jak na Git a Github?

7. 12. 2024 | Ondřej Motl | Vzdělávací materiály

Git a GitHub jsou klíčové nástroje pro správu a sdílení verzí softwarových projektů. Git umožňuje uchovávat jednotlivé verze projektu, sledovat změny, vracet se ke starším stavům a spravovat celý vývoj. GitHub pak poskytuje online platformu pro sdílení projektů a efektivní spolupráci.

Potřebné platformy

Co je Git?

Nástroj, který slouží k verzování projektu, neboli umožňuje uložení jednotlivých verzí projektu odděleně do repozitáře. Zde můžeme například prohlížet kód aktuální verze, jaké změny byly provedeny v dané verzi, a kdo danou verzi nahrál, ale zároveň také staré verze.

Co jsou commity?

Commit je konkrétní bod v historii projektu, který zaznamenává změny provedené v kódu nebo souborech. Commity jsou součástí verzovacího systému, který umožňuje sledovat a spravovat vývoj projektu v čase.

Co je repozitář?

Repozitář je místo, kde se ukládá celý projekt včetně kódu, souborů a historie změn. Slouží jako základní prvek verzovacího systému, který umožňuje sledovat vývoj projektu, vracet se k předchozím verzím a spolupracovat v týmu. Repozitář může být lokální (na tvém počítači) nebo vzdálený (uložený na serveru, jako je GitHub).

Co jsou větve?

Větve dovolují projekt rozvětvit na více verzí zároveň, a tím umožňují paralelní vývoj projektu. Každá větev funguje nezávisle na druhé větvi, spojení více větví do jedné se dosahuje pomocí merge. Hlavní větev je main/master, jedná se o stabilní verzi, která se může nahrát do produkce.

Jak na lokální verzování?

  1. 1. Vytvoření repozitáře

    Než začneme náš projekt někam nahrávat, je potřeba si vytvořit samostatný repozitář na lokálním počítači.
    Pro založení repozitáře si vytvoř složku, kde budeš mít tvůj projekt. V této složce spusť terminál a zadej daný příkaz:

git init

Inicializuje novy repozitár

  1. 2. Přidání souborů do commitu

    Po vytvoření repozitáře je potřeba označit soubory, které chceš zahrnout do commitu. Toho dosáhneš pomocí následujícího příkazu:

git add {soubor}

Píše soubor do repozitáru

Pro kontrolu můžeš použít příkaz

git status

Zobrazí informace o stavu repozitáru

Daný příkaz nejen zobrazí úpravy, které budou v commitu nahrány

  1. 3. Vytvoření commitu

    Když jsme si označili soubory, které chceme přidat do commitu, musíme i vytvořit samotný commit. Ten se vytváří následovně

    git commit -m "Popis commitu"

    Vytvoří commit

    -m Popis commitu

    Pokud používáš Git poprvé, budeš si muset nastavit údaje

    git config --global user.email "email@email.cz"

    git config --global user.name "Jméno"

    Nastaví informace o tvém GitHub účtu

Jak dostat lokální repozitář na GitHub?

  1. 1. Vytvoření GitHub repozitáře

    Zprvu je potřeba si vytvořit na GitHubu repozitář.. Začni tím, že si najdeš v pravém horním rohu symbol + a klikneš na “New repository”

    Zde zadáš název repozitáře, jeho popis a viditelnost, a klikneš na “Create repository

  2. 2. Nahrání repozitáře na GitHub

    Nyní je potřeba přidat místo, kam se budou změny nahrávat. K tomu slouží daný příkaz. Adresa nahrání se ti zobrazí po vytvoření repozitáře.

    git remote add origin https://github.com/username/repo.git

    Přidá vzdálený repozitář

    remote spravuje seznam vzdálených repozitářů

    add přidá vzdálený repozitář

    origin název repozitáře

    url ukazuje na vzdálený bod

    Pro odeslání repozitáře použiješ příkaz

    git push -u origin main

    Odešle změny na GitHub

    -u - upravuje na jaký vzdálený repozitář chceme lokální popsat

    origin - název vzdáleného repozitáře

    main - název větve, do které chceme nahrát změny

  3. 3. Autorizace ke GitHubu

    GitHub bude po tobě vyžadovat autorizaci, že se jedná o tobě. Máš na výběr 2 možnosti:

    1. Autorizace účtu

      Pokud si vybereš autorizaci přes účet, vyskočí ti stránka pro autorizaci aplikace

    2. Personal access token

      Varianta token umožňuje použití speciálního tokenu. Jedná se o personal access token. Ten vytvoříme v “Settings -> Developer settings - Tokens (classic)

      Zde zadáš název klíče a permise, které chceš klíči přidělit, a klikneš na “Generate token”. Daný token si zkopíruj, jelikož si ho už nebudeš moct zobrazit. Tento token vložíš do kolonky “Personal access token”

      Pokud vše proběhlo bez problému, měl by jsi být schopen najít pod “Your repositories” tvůj repozitář s obsahem commitu.

Přidání spolupracovníků

Přidání spolupracovníka dosáhneš v repozitáři přes “Settings - Collaborators”. Je potřeba, aby tvůj spolupracovník měl také účet na GitHubu, jelikož musíš zadat jeho jméno.

Jak vytvořit novou větev?

  1. Přes terminál

Větev vytvoříš v terminálu pomocí příkazu.

git checkout -b “Název větve”

Aby se zobrazila na GitHubu, je opět potřeba změny pushnout. Na GitHubu se následně zobrazí nad listem souborů

  1. Přes GitHub

Novou větev také můžeš vytvořit přes GitHub. Toho dosáhneš tak, že pod aktuální větví vybereš “View all branches”

Zde klikneš na “New branch”, napíšeš název větve a vybereš, z jaké větve bude kód pocházet.

Následně potřebuješ importovat danou větev do lokálního repozitáře. Toho dosáhneš přes daný příkaz:

git fetch origin

fetch stáhne nejnovější informace ze vzdáleného repozitáře

origin název vzdáleného repozitáře

Spojení větví do jedné

Pro propojení více větví do jedné se používá mergování.

  1. Přes terminál

    Půjdeš do větve, do které chceš přijmout změny, a spustíš příkaz:

    git merge jina-vetev

    Toto přidá soubory z jiné větve na danou větev.

  2. Přes GitHub

    Pokud však nechceš použít terminál, lze to udělat také přes GitHub. To lze udělat v záložce “Pull Request”. Zde si vybereš, jakou větev chceš mergnout do jaké, a dáš “Create pull request

    Pull request musíš následně potvrdit

GitHub conflict

Merge conflict vzniká, když se při sloučení dvou větví střetnou nekompatibilní změny ve stejném místě souboru.

K tomu dochází např. když dva vývojáři upravují stejný řádek kódu rozdílným způsobem. GitHub pak neví, kterou úpravu použít.

Při řešení konfliktu musíš ručně vybrat, jakou verzi chceš použít, a tu potvrdit. Tento proces se nedá nijak automatizovat.

Nežádoucí soubory na GitHubu

Existují soubory, které nechceš nahrát veřejně na GitHub. K tomu slouží soubor .gitignore. Do tohoto souboru zadáváš jednotlivé názvy souborů, které nechceš nahrát na GitHub.

GitHub desktop

Pokud nechceš spravovat GitHub repozitář přes terminál, můžeš k tomu využít program GitHub desktop. Jedná se o oficiální grafické rozhraní, které umožňuje lepší synchronizaci GitHub repozitáře a lokálního repozitáře.

Po nainstalování na tebe vyskočí úvodní obrazovka. Zde vybereš “Add an Existing Repository from you local drive…” a vybereš složku s projektem.

Daný projekt se ti následně zobrazí v programu, kde s ním můžeš pracovat.