Pokud budete vyvíjit ve spolupráci s dalšími programátory, budete chtít krom hlavní vývojové větve vyvíjet i nějaké nové funkcinality nezávisle a separátně, abyste nenarušily např. již otestovanž a funkční stav vašeho projektu.
Vaše práce bude samozřejmě probíhat lokálně, jen pushovat budete do nové větve Git repozitáře na serveru. Ostatní programátoři tak budou mít možnost stáhnoit si vaší práci a dodělávat v ní co bude třeba.
Git a větvení projektů
Založení větve na serveru
Branch (větev) na serveru je bočnní verze, která vznikne odloučením z některé jiné větve. Obvykle se v ní provádějí nějaké další změny, které by neměly ovlivnit funkcionalitu hlavní větve. Teprve po odladění se tato bokovka merguje (sloučí) s nějakou hlavní větví, ve které se pokarčuje dál.
git push origin origin:refs/heads/NAZEV_REMOTE_VETVE
Seznam větví na serveru
Na serveru může existovat více větví na kterých se pracuje. Seznam větví získáte následovně:
git branch -r
Script pro založení remote branche
Abyste nemuseli pro založení nové větve nemuseli zadávat spousty příkazů a v pravdě ne vždy si přesně pamatujete syntaxi a parametry daného příkazu, bude se vám hodit tento shell script, který se o vše postará.
!/bin/sh
git-create-branch
if [ $# -ne 1 ]; then
echo 1>&2 Usage: $0 branch_name
exit 127
fi
set branch_name = $1
git push origin origin:refs/heads/${branch_name}
git fetch origin
git checkout --track -b ${branch_name} origin/${branch_name}
git pull
Smazání lokálního branche
Pokud jste si stáhnuli ze serveru nějakou větev k sobě na lokál, zkouknuli jste co jste chtěli a k větvi se už dál nechcete vracet, pak můžete smazat branch na svém lokále:
git branch -d the_local_branch
Smazání branche na serveru
Tady opatrně! Pokud se vám podaří zmergovat nějakou větev do hlavní větve vašeho projektu a práce v dané branchi zkončila, můžete celý branch na centrálním git repozitáři smazat. Nikdo už jej neuvidí a nebude si jej moch checkoutnout.
git push origin :the_remote_branch
Pokud smažete branch na serveru a budete jí chtí obnovit, budete muste najít někoho, kdo má na svém lokále nějakou poslední verzi této větve a z ní větev znovu obnovit, vytvořit.
Checkout vzdálené větve na lokál
git checkout -b remote_branch origin/remote_branch
Aktualizace lokální vývojově větve z jiného branche
Pokud vyvíjíti oddělené v nějaké vlastní větvi (řekněme, že se váš branch jmenuje novinka) a vedle vás se dál vyvíjí v nějaké hlavní větvi (řekněme, že se jmenuje develop) a vy potřebujete do své větve zaimplementovat změny, které proběhly v hlavní větvi, pak následovně:
git checkout novinka
git rebase develop