[[oktatas:programozas:verziokontroll:git|< Git]]
====== Git stratégiák ======
* **Szerző:** Sallai András
* Copyright (c) 2023, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Stratégiák =====
Ha van egy projektünk, ami több részből áll, úgymint backend, frontend, asztali és mobil alkalmazás, ezeknek, egyetlen Git tárolót hozzunk létre, vagy mindegyiknek külön-külön?
A következő megoldások vannak:
* Multi-repo
* backend, frontend, asztali stb. külön tárolók
* Mono-repo
* Egyetlen tároló, azon belül könyvtár szinten külön van választva a backend, frontends stb.
* Monolithic
* Minden egyeben
* Multi-branch
* Minden rész egy külön branc
Mono-repo esetén könnyebb a projekt indítása. A csoport kénytelen együtt dolgozni.
Viszont egyetlen tárolónak nagyon nagy felelőssége van.
===== Multi-repo =====
Ahány rész, annyi Git tároló.
app01/
|-api/
| `-.git/
|-desktop/
| `-.git/
|-mobil/
| `-.git/
`-web/
`-.git/
===== Mono-repo =====
Minden rész, egyetlen Git tárolóban van.
app01/
|-.git/
|-api/
|-desktop/
|-mobil/
`-web/
===== Monolithic =====
Minden rész egyetlen könyvtárban van, de azok nincsenek szét választva külön könyvtárakra.
Nem ajánlott!
app01/
|-.git/
|-controllers/
|-models/
|-views/
`-index.php
Ez akkor fordulhat elő, ha ugyanazzal a keretrendszerrel készítjük a backend-t és frontendet. Ha van asztali és mobil alkalmazás is, annak már külön könyvtár kell.
Olyan keretrendszerek is előfordulnak, amelyekkel egyszerre lehet gyártani webes, desktop és mobil felületet. Ez is egy mono repót eredményez, de itt a backend valószínűleg külön projekt lesz.
===== Több branch =====
A több részből álló projektet megoldhatjuk több branch használatával is.
^
|-mobil
|-desktop
|-frontend
|-api
|
master