Rupesin tässä miettimään, että branchaaminen on itse asiassa huono tai jopa väärä termi sille, mihin Gitin käytöllä itse tähtään. Sen tulkitsee helposti negatiivisesti, kun on tottunut Subversionin jäyhiin brancheihin.
Git itse käyttää termiä clone. Eli repository kloonataan kehittäjä(tiimi)n käyttöön.
Aihetta selväntääkseni ohessa samankaltaisen työprosessin vaiheet Subversionissa ja Gitissä:
Työn aloitus | |
svn checkout | git clone |
Työn iterointi (toistuu N kertaa) | |
svn update | git pull |
(editoidaan) | (editoidaan) |
- | git commit |
Työn valmistuminen | |
svn commit | git push |
Eli kuten tuosta käy ilmi, Subversion-työhakemistoa ei voi commitata paikallisesti, vaan commitissa kaikki muutokset menevät heti trunkkiin. Gitissä taas committeja voi tehdä mielin määrin, ja vasta push vie muutokset trunkkiin. Tämä tarkoittaa, että kehittäjällä on käytettävissään versiohallinnan rollback- ja historiaominaisuudet aivan kuten erillisestä branchia työstäessään.
Edellä kuvattu prosessihan voidaan toteuttaa Subversionissa brancheilla, mutta silloin on hirveän monimutkaista saada uusimmat muutokset trunkista omaan branchiin sekä commitata oman branchinsa muutokset trunkkiin.