Tento quickstart není nikterak podrobný, nebudou popisovány žádné větší složitosti, tedy například konkrétní uložení a fungování systému git, zabezpečení, nic. Části toho, co zde vynechám, budou popsány v jiném topicu.
Nejprve krátký slovník pojmů:
- repozitář - jedno oddělené úložiště určené např. právě jednomu projektu
- branch - "větev" vývoje v rámci jednoho repozitáře (oddělení vývoje projektu do vlastního odděleného "prostoru")
- commit - "příspěvek" do repozitáře v podobě změn oproti stavu před ním
- commit note - poznámka k příspěvku do repozitáře, povinná
- pull - stažení změn ze vzdáleného repozitáře do místního, např. na vašem PC
- push - nahrání změn z místního repozitáře do vzdáleného
- merge - spojení větví do sebe
- patch / diff - soubor změn, který lze např. odeslat mailem nebo zde na fórum (fakticky je rozdíl mezi pojmy patch a diff, nebudeme se jím zabývat)
- master - zde nějaká hlavní branch, která je přítomna vždy a tvoří stabilní vývojovou větev
Linux
Pro uživatele operačních systémů založených na GNU/Linux (dále jen "na Linuxu") je postup snadný - stačí otevřít terminál a prostřednictvím balíčkového systému ve vaší distribuci přítomným stáhnout nástroje gitu:
Kód: Vybrat vše
# Debian-based systemy (Ubuntu, Mint, ..)
apt install git-all
Kód: Vybrat vše
# Fedora/CentOS/...
dnf install git-all
Na OS Windows je nutné sahnout po instalátoru, který vám nastaví vše potřebné. Nástroj se jmenuje msysgit a je dostupný ke stažení na této adrese: https://git-for-windows.github.io/
Stahněte instalátor, nainstalujte.
Stažení repozitáře, orientace
Příkladem bude repozitář emulátoru. Pro jeho stažení se navigujte do terminálu - v případě Linuxu stačí otevřít terminál, v případě Windows by mělo stačit pravým tlačítkem myši stisknout kamkoliv do volného prostoru nějaké složky (popř. na plochu) a vybrat "Git Bash here". Pak si najdeme repozitář na webových stránkách githubu, kde se naše repozitáře nacházejí - https://github.com/iCeOnlineWoW - vybereme repozitář "G-Core" a vpravo najdeme zelené tlačítko "Clone or download" a uvedenou adresu si zkopírujeme do schránky (ctrl-C) - naznačeno zde: https://i.imgur.com/XMiGirS.png
Poté se přesuneme do terminálu a zadáním příkazu s touto adresou stahneme repozitář:
Kód: Vybrat vše
git clone https://github.com/iCeOnlineWoW/G-Core.git
Nyní máte stažený repozitář a můžete si prohlédnout složku, která se vám tímto vytvořila. Pokud máte zobrazené skryté soubory a složky, můžete vidět složku ".git" - ta není součástí přímo repozitáře (kódu, který spravujete, atd.), ale jedná se o složku sdružující informace o repozitáři (řekněme takové "meta informace") - ukládá se tam vše možné od nastavení specifického pro repozitář, až po historii commitů ve všech branchích tohoto repozitáře. Ostatní soubory a složky jsou již standardním obsahem tzv. "working tree" - pracovního stromu repozitáře.
V momentě stažení repozitáře máte uloženou nějakou lokální kopii toho, co bylo platné v momentě stahování. V této lokální kopii můžete provádět změny, jak se vám zlíbí, ale žádná z nich se neprojeví v původním vzdáleném repozitáři, dokud neprovedete "push" (s příslušnými právy; k tomu dále)
Vývoj, commity
Každý vývoj by měl probíhat alespoň trochu systematicky, tedy v případě emulátoru si vytyčíte cíl, co chcete opravit - řekněme nějaký spell, nebo naskriptovat AI potvory. To znamená, že v jeden moment byste měli pracovat na jedné této úpravě. Pochopitelně jsou cesty, jak docílit možnosti pracovat na vícero opravách zároveň se zachováním čistoty repozitáře, ale to pro tento návod vynechme, budeme se soustředit na jednoduché postupy.
Důvodem, proč je nutné dodržet systematický postup při vývoji je ten, že vše co změníte budete chtít "zabalit" do nějakého commitu, který bude mít nějakou svou poznámku, která typicky obsahuje (a v našich repozitářích vždy bude obsahovat) titulek změny. V případě opravy spellu to bude název spellu, co jste opravovali, v případě AI bosse v dungeonu to bude například lokace a jméno.
Pro teď tedy předpokládejme, že jste v kódu změnili, co jste potřebovali a dodrželi jste vše vypsané. Budeme tedy chtít obalit změny do commitu. To uděláme příkazem, který obecně vypadá takto:
Kód: Vybrat vše
git commit <soubory> -m "<commit note>"
Kód: Vybrat vše
git commit -a -m "Spells/Warlock: fixed Summon Imp visual effect"
Pokud chcete přidat nový soubor do repozitáře a zahrnout ho v commitu, je nutné ho před commitem nejdříve přidat příkazem, který obecně vypadá takto:
Kód: Vybrat vše
git add <soubory>
Kód: Vybrat vše
git add *.cpp
Kód: Vybrat vše
git add main.cpp
Nahrávání změn na vzdálený repozitář
Pokud jste vytvořili commit a chcete ho přenést do vzdáleného repozitáře (a máte na to příslušná práva), lze to provést příkazem "push". Ještě předtím ale budeme muset ověřit, že máme lokální kopii aktuální (tedy že žádný náš kolega nestihnul nahrát svoje změny dříve), a pokud ne, aktualizovat ji. To lze provést příkazem:
Kód: Vybrat vše
git pull
Kód: Vybrat vše
git reset --hard
Takovou aktualizaci je doporučené provádět před tím, než začnete provádět změny. Vyhnete se tím zbytečným konfliktům, kterým šlo předejít včasnou aktualizací.
Pokud je vše v pořádku, lze provést příkaz
Kód: Vybrat vše
git push
Poznámka:
Od určité verze gitu a tuším asi jen na Windows je potřeba specifikovat, do jaké branche budete přispívat. To zajistíte příkazem:
Kód: Vybrat vše
git push --set-upstream origin master
Alternativy
Pochopitelně existují i alternativní přístupy, například nějaké grafické rozhraní. Používáním těchto nástrojů se ale vystavujete riziku, že bude provádět dodatečné operace "za vašimi zády", a že vám například nebudu schopen v případě potíží pomoci jinak, než zase použitím konzolové verze. Sám GitHub nabízí svého desktopového klienta, kterého pochopitelně je možné použít. Nezkoušel jsem ho, nicméně přístup přes konzoli je univerzální a dostupný všude a vždy.
------- Zatím to berte s velkou rezervou, zítra si to po sobě přečtu a hrozí, že toho půlku stejně přepíšu