====== Git (Správa verzí) ====== **Git** funguje jako "stroj času" pro váš kód. Umožňuje ukládat historii změn, vracet se k předchozím verzím a pracovat na více funkcích současně, aniž byste si vzájemně přepisovali práci. ===== 1. Základní principy ===== Na rozdíl od starších systémů je Git **distribuovaný**. To znamená, že každý vývojář má v počítači kompletní kopii celého projektu i s jeho historií, nejen aktuální verzi. ==== Tři stavy souboru v Gitu ==== Než se změna trvale uloží, prochází těmito fázemi: 1. **Working Directory (Pracovní adresář):** Soubory, které právě upravujete. 2. **Staging Area (Index):** "Přípravna" pro soubory, které chcete zahrnout do příštího uložení. 3. **Repository (Local):** Trvalé uložení změn v lokální databázi (tzv. **commit**). ===== 2. Klíčové pojmy ===== * **Repository (Repo):** Složka projektu spravovaná Gitem (obsahuje skrytou složku ''.git''). * **Commit:** "Snímek" stavu projektu v daný čas. Každý commit má unikátní ID (hash) a zprávu s popisem změn. * **Branch (Větev):** Nezávislá linie vývoje. Hlavní větev se obvykle jmenuje ''main'' nebo ''master''. * **Merge:** Sloučení dvou větví dohromady (např. když dokončíte novou funkci a chcete ji přidat do hlavní aplikace). ===== 3. Základní příkazy v terminálu ===== ^ Příkaz ^ Význam ^ | ''git init'' | Vytvoří nové prázdné repository v aktuální složce. | | ''git add .'' | Přidá všechny změněné soubory do Staging Area. | | ''git commit -m "Zpráva"'' | Trvale uloží změny s popisem. | | ''git status'' | Ukáže, které soubory jsou změněné a v jaké fázi se nacházejí. | | ''git log'' | Vypíše historii všech uložených změn (commitů). | ===== 4. Spolupráce (Remote) ===== Pro sdílení kódu s ostatními se používají vzdálené servery (Remote Repositories), jako jsou **GitHub, GitLab** nebo **Bitbucket**. * **Push:** Odeslání vašich lokálních commitů na server. * **Pull:** Stažení nejnovějších změn od kolegů ze serveru do vašeho počítače. * **Clone:** Stažení kompletního existujícího projektu ze serveru poprvé. ===== 5. Proč je Git nepostradatelný? ===== * **Bezpečnost:** Můžete experimentovat. Pokud něco rozbijete, jedním příkazem se vrátíte k funkční verzi. * **Týmová práce:** Git dokáže automaticky spojit změny od deseti lidí, pokud neupravovali stejný řádek kódu. Pokud ano, nahlásí **Conflict**, který vývojář ručně vyřeší. * **Dokumentace:** Díky historii přesně víte, kdo, kdy a proč danou změnu v kódu udělal. > **Zajímavost:** Linus Torvalds pojmenoval Git podle britského slangového výrazu pro "protivného nebo hloupého člověka". S nadsázkou říkal: "Jsem egoista, takže všechny své projekty pojmenovávám po sobě. Nejdřív Linux, teď Git." [[it_encyklopedie:ide|Zpět na IDE]]