4. Verzovací systémy

Jak můžeme na projektu spolupracovat ve více lidech?

Verzovací systémy

  • (=VC, version control)
  • uchovávání historie změn
  • spolupráce více lidí na jednom projektu
  • zachování integrity kódu
U jakých projektů by se nám mohl hodit verzovací systém?
Je verzování podstatnou součástí projektu?

Nejznámější verzovací systémy

  • Git
  • Mercurial
  • Subversion

Git

Git

  • nejrozšířenější verzovací systém
  • vytvořen Linusem Torvaldsem (Linux)
  • distribuovaný systém
  • open-source

Filozofie Git

  • zdarma
  • rychle
  • jednoduše
  • nezávisle na platformě
  • fungovat offline
Git je možné celý ovládat přes CLI, my ale pro simplicitu budeme pracovat s Git klientem

Teorie Gitu

Repozitář

  • adresář, kde je uložen náš projekt
  • obsahuje všechny soubory a historii změn
  • vytváříme nebo klonujeme z internetu

Commit

  • (=revize)
  • balíček obsahující nějaké změny
  • např. vytvoření nového souboru, upravení jiného atd.
  • obsahuje zprávu a případně popisek

Branch

  • (=větev)
  • odnožení od hlavní větve
  • používáme pro vývoj nových funkcí
  • můžeme si vytvořit vlastní
  • výchozí je main (nebo master)

Branch

Branching

Stavy souborů

    GitHub Desktop

Gitové služby

Jaký je rozdíl mezi Git a GitHub?

Gitové služby

  • nadstavba na Git
  • hostování repozitářů
  • přehlednější vizuální prvky
  • velmi zjednodušené nastavování

Gitové služby

  • GitHub
  • GitLab
  • Bitbucket
  • Gitea

Gitové klienty

  • GitHub Desktop
  • GitKraken
  • Sourcetree
  • VS Code

GitHub Desktop

  • od GitHubu
  • jednoduché ovládání
  • přehledný přehled změn

GitHub Desktop instalace

GitHub Desktop instalace

GitHub Desktop

GitHub Desktop instalace

GitHub Desktop

GitHub Desktop instalace

GitHub Desktop

Školní Git

Školní Git

GitHub Desktop

úvodní stránka

GitHub Desktop

neinicializovaný repozitář

GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop
GitHub Desktop

Otázky na konec

  • Co je to commit?
  • Jaký je rozdíl mezi GitHub a Git?
  • Jaký je rozdíl mezi branch a commit?