🤫 Psst! Článek vyšel v roce 2019 a protože řeší technikálie, nemusí už být aktuální. Berte ho s rezervou.
Pro co nejrychlejší start na novém projektu vždy jen vytvořím složku v repu ales.net. Tím se bez jakéhokoliv nastavování mohu rovnou pustit do práce a klientovi se automaticky přiřadí nová subdoména.
S předáním finálního webu je také ideální projekt vyčlenit a předat i historii vývoje. S git filter-branch je to otázka pár minut a zároveň jedna z mála operací, kdy zavírám Fork a skáču do Terminálu:
cd Sites
git clone ales.net nazevprojektu
cd nazevprojektu
Těmito třemi příkazy jsem se přemístil do složky, ve které držím všechny weby, vytvořil kopii (a přejmenoval na nazevprojektu) hlavního repozitáře a přemístil se do ní. Pak pro jistotu odeberu původní remote a nechám repozitář přefiltrovat:
git remote rm origin
git filter-branch --subdirectory-filter nazevprojektu
Nastavení --subdirectory-filter nazevprojektu zajistí, že všechny commity sahající do složky projektu zůstanou a historie ostatních složek bude zahozena. Zároveň se obsah složky posune o úroveň výš do kořenového adresáře.
Výsledkem je čistá historie s jasnou posloupností, nový repozitář se však může zdát datově velký. A nezdá, stále si totiž nese tíhu původního. Rychlého zmenšení lze dosáhnout příkazem git gc.
Pravděpodobně lze použít i efektivnější způsob, protože po nahrání a čistém naklonování je repozitář ještě menší. Ale zatím nevím jak a zároveň mám radši jednopříkazová řešení.
Pomohlo? Tento článek se vztahuje k mým začátkům s Gitem. Bude jich víc.