Git Worktrees

Advanced Git

Amanda Crawford-Adamo

Software and Data Engineer

Co je Git Worktree?

Příkaz Git Worktree

git worktree
  • Umožňuje "checkout" více větví v pracovním prostoru.
  • Podobné jako checkout repozitáře, ale efektivnější
  • Není třeba ukládat změny (stash)
  • Není třeba přepínat větve během vývoje

Schematický strom složený z kruhů a čar

Advanced Git

Git Worktree vs. Git Switch

Tabulka porovnává git worktree a git switch ve vývojovém workflow. $$

Git Worktree Git Switch
Více aktivních větví Jedna aktivní větev
Samostatné adresáře Jeden pracovní adresář
Není třeba stashovat Může vyžadovat stash
Advanced Git

Vytvoření Git Worktree

Vytvoří nový worktree z větve <branch> do adresáře <path>

git worktree add <path> <branch>

Příklad

Vytvoří nový worktree z větve bugfix/data-validation do adresáře ../etl-bugfix

git worktree add ../etl-bugfix bugfix/data-validation
Advanced Git

Zobrazení a odebrání Worktrees

  • Zobrazí všechny aktivní worktrees: git worktree list

Příklad výstupu

$ git worktree list
flight-pipeline            a1b2c3d [main]
flight-pipeline-feature    e4f5g6h [feature]
flight-pipeline-hotfix     i7j8k9l [hotfix]
  • Odstraní worktree z adresáře <path>: git worktree remove <path>

Příklad výstupu

$ git worktree remove flight-pipeline-hotfix
flight-pipeline-hotfix: deleted
Advanced Git

Kdy používat Git Worktrees

Kdy použít:

  • Práce na více funkcích současně
  • Řešení urgentních oprav bez přerušení probíhající práce
  • Spouštění testů na různých větvích paralelně
  • Revize kódu při pokračování vývoje

Zvažte jiný přístup, pokud:

  • Je omezený prostor na disku
  • Projekty s častými aktualizacemi a složitými merge
Advanced Git

Doporučené postupy pro Git Worktrees

Při práci s Git worktrees mějte na paměti:

  1. Používejte jasné konvence pojmenování adresářů worktree
  2. Pravidelně odstraňujte nepoužívané worktrees pro přehlednost
  3. Sledujte využití místa na disku, zejména u velkých projektů
  4. Worktrees používejte pro krátkodobou paralelní práci
Advanced Git

Pojďme si to procvičit!

Advanced Git

Preparing Video For Download...