salut,
un système de gestion de version permet cela (on parle aussi de mise en configuration).
il existe git, svn, mercurial, clearcase etc....
de nos jour git est le plus connu et le plus répendu.
Il y a les grands classiques comme github, bitbucket (des dépôt privé gratis) mais tu aussi t'en héberger un tout seul (par exemple combo docker + gogs).
Pour ce qui est de l'utilité, outre l'historisation des modifications dans le code git va te permettre d'avoir un référentiel de code comment (le serveur git) et chaque fois qu'un dev fait un modif il la pousse sur le serveur git, la soit sa passe soit ça casse : conflit y a quelqu'un qui a déjà fait une modif => tu merges.
Maintenant git vient aussi avec des méthode de travail comme git gflow =>
https://www.grafikart.fr/formations/git/git-flow (il y a aussi des tuto généraux sur git sur ce même site)
a partir de la chaque personne qui fait une évolution travail sur une branche distinct et ensuite on merge, ou pas.
tu peux aussi utiliser les pull request (ce qui et fait sur github). chaque personne clone le dépôt et l'utilise pour faire ses modif quand il a finit il fait une pull request sur l'original et la celui qui gère accepte ou non le merge.
a travail en groupe tu va y gagner à utiliser git
@+