Control de versions
Introducció
Un sistema de control de versions ens permet:
- Tenir un repositori de codi (accés per xarxa)
 - Mantenir un seguiment de les versions dels arxius i projectes.
 - Còpia de seguretat i rollback (desfer canvis que no han prosperat).
 - Centralitzar els col·laboradors en un projecte comú.
 - Alguns (com el GitHub) faciliten el control del projecte amb objectius o fites (milestones) i incidències (issues)
 
Sistemes de control de versions:
- git
 - Subversion (svn)
 - Mercurial (hg)
 - CVS (ha quedat obsolet)
 - Razor
 - ...
 
Treballarem amb GIT ja que disposem de la web GitHub.com que ens permet crear repositoris gratuïts si són públics. Si els volem privats s'ha de pagar.
També podríem instal·lar-nos el nostre propi servidor, però GitHub.com ofereix un servei de qualitat, eficient i obert a la comunitat de codi lliure, facilitant la difusió i col·laboració.
Conceptes
Alguns conceptes:
- Repositori: projecte base
 - Col·laboradors: desenvolupadors participants en un projecte autoritzats a accedir al repositori.
 - Branch: ="branca". Versió alternativa dins del mateix repo. Facilita el desenvolupament de diferents subparts del projecte sense interferir-se. Només disponible en escriptura per als usuaris autoritzats.
 - Fork: ="forquilla". Clonació d'un projecte en un nou repositori. Similar al branch (facilita desenvolupaments paral·lels sense interferències) però no cal tenir autorització, ja que clonem el projecte al nostre espai.
 - Merge: procés per unir dues branques o dos repositoris (fork). Pot produir inconsistències o incompatibilitats que cal administrar correctament.
 - Pull request: el projecte original sol·licita als projectes forked que s'actualitzin, ja que hi ha hagut canvis.
 - Trunk: branca principal d'un projecte.
 
Altres conceptes relacionats amb el management de projectes:
- Milestone: fita o objectiu (p.ex. sistema d'autenticació, importació d'arxius, etc.)
 - Issue: pot ser una incidència (bug detectat) o bé una part d'un milestone, una petita fita a aconseguir. Per exemple: error en la càrrega d'arxius (bug), llibreria d'accés a la base de dades, formulari d'entrada i validació, etc.