Git
Instalace
Poznámka: na labových počítačích je Git už nainstalovaný.
Jděte na https://git-scm.com/downloads a vyberte si váš operační systém.
Instalace na Windows má grafické rozhraní, kde si můžete vybrat některá nastavení. Moje doporučení je brát výchozí hodnoty kromě:
- Choosing the default editor used by Git: vyberte si editor, který vám vyhovuje, např. VS Code. Pokud byste editor později chtěli změnit, jde to.
- Choosing the SSH executable: pokud už máte SSH klient (což zjistíte třeba příkazem
ssh -V
), zvolte Use external OpenSSH.
Po instalaci možná bude potřeba zavřít a znovu otevřít váš terminál (případně textový editor), aby v něm začal fungovat příkaz git -v
.
Prvotní nastavení
Aby Git mohl zaznamenávat, kdo udělal kterou změnu, musíte si nastavit svoji identitu pomocí příkazů:
git config --global user.name "Vaše Jméno"
git config --global user.email "your_email_address@example.com"
Přihlášení do MFF GitLabu
MFF GitLab najdete na adrese https://gitlab.mff.cuni.cz/. Pro přihlášení do Username zadejte vaše přihlašovací jméno do SISu (např. topfermi
; ne vaše číslo) a Password je vaše heslo do SISu.
Poznámka: používáme MFF GitLab, což je něco jiného než GitLab.com.
Vytvoření projektu
Po přihlášení do GitLabu si můžete vytvořit nový projekt (modré tlačítko New Project vpravo nahoře). Zvolte Create blank project a na další stránce ho pojmenujte a vyberte, kam se má uložit: v Project URL zvolte vaše uživatelské jméno (v sekci Users).
Stažení projektu (clone
)
Jsou dvě možnosti, jak přistupovat ke GitLabu a stáhnout si odtamtud váš projekt (a později tam taky nahrát změny, které uděláte):
- HTTPS – přihlášení pomocí jména a access tokenu (případně hesla). Pro každou operaci (stažení, nahrání) se musíte znovu přihlásit. Naštěstí má Git zabudovaný Credential Manager, který si vaše jméno a token (heslo) umí pamatovat, takže ho nemusíte pokaždé zadávat. Tuhle možnost si ukážeme na cvičení.
Credential Manager automaticky ukládá vaše heslo, což není bezpečné, pokud počítač používá více lidí (jako třeba ten v labu). Proto je lepší místo hesla používat access token. Navíc u něj jde nastavit, že má platit je po omezenou dobu. Token jde vytvořit buď
- pro jeden konkrétní projekt (otevřete si projekt, v levém menu zvolte Settings, Access Tokens, pak Add new token, Select a role nastavte na Maintainer a v Select scopes vyberte write_repository; pokud byste chtěli víc podrobností, jděte do dokumentace), nebo
- pro celý váš účet (klikněte na váš obrázek vlevo nahoře, Preferences, Access Tokens, pak Add new token a v Select scopes vyberte write_repository; dokumentace).
Pokud byste potřebovali vymazat vaše přihlašovací údaje, tak na počítačích s Windows (tedy třeba v labu) jděte do Ovládací panely (Control Panel) / Uživatelské účty (User Accounts) / Spravovat přihlašovací údaje (Credential Manager) / Přihlašovací údaje systému Windows (Windows Credentials) / Obecné přihlašovací údaje (Generic Credentials) a tam najděte git:https://gitlab.mff.cuni.cz
a smažte.
- SSH – přihlášení pomocí klíče (návod na nastavení).
Pro stažení projektu z GitLabu na stránce projektu klikněte na modré tlačítko Clone a zkopírujte si adresu z Clone with HTTPS. V terminálu si otevřete složku, kam projekt chcete uložit, a spusťte příkaz git clone ADRESA
(např. git clone https://gitlab.mff.cuni.cz/teaching/nprg030/2425-winter/student-TOPFERMI.git
). Mělo by se vám otevřít okno, kam zadáte jméno a access token (nebo heslo) a pak by se váš projekt měl stáhnout do nové složky. Pokud se vám nedaří přihlásit, můžete použít access token přímo v adrese: git clone https://USERNAME:TOKEN@gitlab.mff.cuni.cz/teaching/nprg030/2425-winter/student-TOPFERMI.git
(dokumentace).
Pokud se vám nechce pracovat s terminálem, můžete po kliknutí na Clone zvolit Visual Studio Code (HTTPS), což vám dovolí vybrat, kam se projekt uloží, z grafického rozhraní.
Poznámka: na labovém počítači mi nefungovalo stažení projektu na síťový disk (např. Z:
). Nicméně na lokálním disku D:
mi to fungovalo bez problémů.
Ignorování souborů
Některé soubory nechceme ukládat na server (třeba zkompilované programy, pomocné soubory našeho editoru, …). Nejjednodušší způsob, jak to udělat, je pomocí souboru .gitignore
. Pro Python si stáhněte soubor Python.gitignore
(pro další jazyky jsou doporučené soubory tady). Po stažení ho přesuňte do kořenové složky vašeho projektu a přejmenujte na .gitignore
(tedy odeberte z názvu staženého souboru slovo “Python”, ale tečku a vše za ní tam nechte).
Poznámka: Pro vaše zápočtové program je .gitignore
pro Python už připravený ve repozitáři.
Uložení změn
Ve VS Code můžete s Gitem snadno pracovat ze záložky Source Control (levé menu). Pomocí tlačítka + (Stage changes) vyberte soubory, které chcete uložit. Pak do Message napište popis změn a klikněte na Commit, čímž se aktuální změny uloží jako nová verze projektu. Následně pomocí tlačítka Sync changes nahrajete tyto změny i na GitLab.
Pokud by vám nějaké z tlačítek nefungovalo nebo byste potřebovali operace udělat ručně, odpovídající příkazy jsou:
git status
– přehled nových změn, které zatím nejsou uložené,git add .
– připraví všechny změněné soubory k uložení (případněgit add SOUBOR
, pokud chcete jako novou verzi uložit změny jen v některých souborech),git commit -m "Popis změn"
– uloží připravené změny jako novou verzi,git push
– nahraje novou verzi na GitLab.
Další užitečné příkazy případně najdete v taháku nebo se je dozvíte v LS na Úvodu do Linuxu.
Úlohy na procvičení
Římská čísla
Napište testy pro funkci na převod čísel na římská čísla. Podrobnější zadání je v ReCodExu.
Učební výstupy
Učební výstupy podávají zhuštěný souhrn základních konceptů a dovedností, které byste měli umět vysvětlit a/nebo použít po každém cvičení. Hvězdičkou (⭐) je označena látka nad rámec předmětu Programování 1, kterou tedy teď nemusíte umět, ale někdy v budoucnu se vám může hodit.
- napsat aspoň základní unit testy pro ověření funkčnosti funkcí a objektů (moduly
unittest
nebopytest
) - umět spustit existující unit testy a z výstupu poznat, které testy prošly a které ne
- ⭐ umět použít Git pro správu zdrojového kódu (stačí bez větvení a konfliktů)
- ⭐ přistupovat ke vzdálenému projektu (např. na MFF GitLabu) ze svého počítače pomocí HTTPS (příkazy
git clone
,git push
,git pull
nebo přes UI editoru) - ⭐ uložit novou vývojovou verzi projektu (příkaz
git commit
nebo přes UI editoru) - ⭐ používat soubor
.gitignore
pro ignorování souborů, které nechceme v projektu verzovat (např. produkty build systému) a vědět, že existují doporučené.gitignore
soubory pro běžně používané jazyky a editory
- ⭐ přistupovat ke vzdálenému projektu (např. na MFF GitLabu) ze svého počítače pomocí HTTPS (příkazy
- ⭐ v projektu oddělit prostory pro zdrojové kódy, dokumentaci a produkty build systému
- ⭐ ovládat základy jazyka Markdown (nadpisy, odkazy, …) a umět ho využít pro psaní dokumentace