Git

Z FI WIKI
Přejít na: navigace, hledání

Git je distribuovaný systém správy verzí zdrojového kódu. Tutoriál je dostupný na atlassian.com.

GitHub je veřejný webový hosting pro git repositories.

GitLab na FI MU je soukromý webový hosting pro git repositories, jde o instalaci software GitLab na FI MU.


Vytvoření repository

(tutoriál)

  1. pokud ještě nemáte, vytvořte si účet na GitHubu nebo v GitLabu na FI MU
  2. v jeho webovém rozhraní vytvořte novou repository, například https://github.com/pepa/test1 nebo https://gitlab.fi.muni.cz/pepa/test1
  3. stále ve webovém rozhraní vytvořte soubor README.md a něco do něj napište
  4. na příkazovém řádku oklonujte tuto repository příkazem git clone https://github.com/pepa/test1
  5. vstupte do adresáře s oklonovanou repository příkazem cd test1

V tomto okamžiku existuje soubor README.md třikrát:

  • v původní repository na GitHubu, budeme ji nazývat origin
  • v pracovním adresáři test1, budeme ho nazývat working copy
  • v lokální repository v adresáři test1/.git

Nastavení autora

Před tím, než provedete první commit, nastavte svoje jméno a emailovou adresu, podle které bude posuzováno autorství commitů (viz Setting your email in Git). Uděláte to příkazy

git config --global user.email "pepa@example.com"
git config --global user.name "Pepa Novak"

Toto nastavení je uloženo v souboru ~/.gitconfig.

Provedení změn

  1. libovolným editorem změňte obsah souboru README.md, změny jsou zatím jen ve working copy
  2. zaregistrujte změnu tohoto souboru do příštího commitu příkazem git add README.md
  3. proveďte commit zaregistrovaných změn příkazem git commit -m "edited README" kde parameter -m přidává zprávu ke commitu, teď je změna v lokální repository
  4. pošlete poslední commity z lokální repository do origin repository na GitHubu příkazem git push

Obecně editováním měníte soubory ve working copy, příkazem git add vytváříte seznam změn, které budou v příštím commitu (tzv. staging area), a příkazem git commit připravený seznam změn uložíte do lokální repository v adresáři .git jako určitý stav souborů nazývaný commit.

Výpis stavu

  • git status zobrazí rozdíly working copy oproti repository
  • git log vypíše seznam commitů v lokální repository
  • git log --oneline --abbrev-commit --all --graph --decorate --color vypíše hezky barevný seznam commitů
  • gitg --all spustí grafický klient pro prostředí Gnome zobrazující commity i všechny existující větve v lokální repository


Nastavení ignorovaných souborů

Ne všechny soubory ve working copy budeme chtít mít i v repository, a ani nebudeme chtít, aby nás git status na jejich existenci stále upozorňoval. Jde hlavně o soubory produkované vývojovými prostředími a kompilátorem.

Proto vytvoříme soubor .gitignore s následujícím obsahem:

.idea
.settings
.project
test-output
.classpath
*.iml
*~
target

který obsahuje seznam takových souborů a adresářů pro INtelliJ IDEA, NetBeans i Maven.

Tento soubor přidáme do repository příkazy git add .gitignore; git commit -m "added list of ignored files".

Práce v týmu

GitHub umožňuje dva způsoby spolupráce v týmu:

  • sdílená repository
  • fork and pull