-
Notifications
You must be signed in to change notification settings - Fork 3
Git Workflow
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.
- Stránka na GitHub: https://github.com/cyanteam/telemaniacs
- Adresa hlavního repozitáře (upstream) https://github.com/cyanteam/telemaniacs.git
- S hlavním repozitářem nepracujeme nikdy přímo. Každý člen týmu má vlastní kopii (fork) repozitáře. Integrátor poté projevuje změny z jednotlivých forků do upstreamu.
- 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)
- 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!
- 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}
- Nejprve se přepneme na větev s odpovídajícím milestonem:
- (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žijemegit 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
- Home
- Assignment
- Specification & Analysis
- User Interface
- Team Dashboard (CZ)
- Git Workflow (CZ)
- Used Technologies