Skip to content
Michael Le edited this page Oct 30, 2017 · 1 revision

Zde je sepsán doporučený způsob pro práci s Gitem v týmu. Snahou je minimalizovat konflikty v kódu při kolaboraci v týmu.

Základní informace

Rozdělení práce

  • V Issue Trackeru jsou definované dílčí podúlohy, rozdělené mezi jednotlivé členy týmu
  • Po rozkliknutí Issue je možné v pravém sloupci vyčíst komu je úloha přiřazena, tedy kdo za ní má primární zodpovědnost (Asignee)

První stažení repozitáře

  • Přejdeme na GitHubu na hlavní repozitář a provedeme Fork repozitáře (bude mít adresu https://github.com/{uzivatel}/telemaniacs.git)
  • Naklonujeme si tento Fork na lokální počítač: git clone https://github.com/{uzivatel}/telemaniacs.git
  • Přejdeme do složky s repozitářem
  • Sdělíme Gitu, kde se nachází hlavní repozitář: git remote add upstream https://github.com/cyanteam/telemaniacs.git
  • Nezapomeňte si nastavit korektní uživatelské jméno a e-mail!

Práce s repozitářem

  • Před prací s repozitářem je vhodné si stáhnout změny z hlavního repozitáře: git fetch upstream popřípadě git pull upstream
    • V případě nalezení konfliktů je nutné je vyřešit, ale v případě dodržení workflow by měly nastávat zřídka
  • Na Issue Trackeru si vybereme úlohu, se kterou chceme pracovat (případně vytvoříme nový Issue)
  • (a) Pokud pracujeme na nové úloze, vytvoříme si tematický branch pro danou úlohu:
    • Nejprve se přepneme na větev s odpovídajícím milestonem: git checkout milestone{X}, kde X je číslo milestonu
    • Vytvoříme nový branch pro vybranou úlohu (volíme krátký a výstižný název): git branch {název_branche}
    • Přepneme se do tohoto branche: git checkout {název_branche}
    • Uděláme iniciální push do vzdálené větve: git push --set-upstream origin {název_branche}
  • (b) Pokud se k úloze vracíme, přepneme se do odpovídajícího tematického branche: git checkout {název_branche}
  • Provedeme potřebné změny, změněné soubory přidáme do repozitáře (pomocí git add) a případně commitujeme
    • Commit provádíme po každé větší změně (vytvoření nové třídy/metody/...)
    • Zadáváme srozumitelný a výstižný commit message
    • V commit message se lze odkazovat na patřičný issue uvedením #{číslo issue}, commit se spáruje s issue
    • Pokud zapomeneme do nějakého commitu přidat soubory, přidáme je pomocí git add a použijeme git commit --amend (připojí provedené změny k poslednímu commitu)
  • Commitnuté změny poté pošleme na Git pomocí git push
  • V případě, že jsme splnili určený úkol, provedeme merge (popř. rebase) do milestonové větve a požádáme o Pull Request