Git est un système de contrôle de version distribué gratuit et open source conçu pour gérer des petits aux très grands projets avec rapidité et efficacité. Git est facile à apprendre et a des performances ultra-rapides.” (Git)

Git - système de contrôle de version distribué open source
Mais d'abord: qu'est-ce qu'un «système de contrôle de version», et pourquoi s'en soucier?

Un système de contrôle de version (VCS) suit les modifications apportées aux fichiers. Au fur et à mesure que nous modifions les fichiers, le système enregistre chaque modification dans un historique. Cela permet de restaurer une version précédente de notre code à tout moment. L'utilisation d'un VCS signifie également généralement que si nous gâchons des choses ou perdons des fichiers, nous pouvons facilement récupérer notre travail à n'importe quel moment.

Dans un environnement collaboratif, il est courant que plusieurs développeurs partagent et travaillent sur le même code source. Alors que certains développeurs corrigeront des bogues, d'autres implémenteront de nouvelles fonctionnalités, etc.

Git - Travail collaboratif et environnement

En bref, un système de contrôle de version comme Git est essentiel pour tout type de développement. Il permet de:

- Garder une trace de l'historique du code.
- Voir les modifications apportées.
- Voir pourquoi des changements étaient nécessaires.
- Voir qui a fait quels changements.
- Collaborer sur le code en équipe.
- Déployer en continue.

Nous verrons ici Git à partir des éléments essentiels tels que repositories, branches, commits, et Pull Requests. Nous aborderons ensuite des sujets plus avancés comme les workflow, statistiques, les générations autommatiques, l'integration continue et comment collaborer avec d'autres développeurs (en open source ou non).

Je suis sûr que chacun d'entre nous a déjà fait un changement de nom de fichier pour garder une trace des différentes versions, comme par exemple: “cv”, “cv_v2”, “cv_062018”…

Git - Évitez de renommer les fichiers - problèmes de versions

En d'autres termes, chacun d'entre nous a déjà été contraint d'enregistrer manuellement plusieurs versions de nos fichiers sous des noms différents. Renommer un fichier ne nous donne pas non plus de contexte quant aux modifications apportées ou par qui elles ont été apportées. Lorsque plusieurs membres de l'équipe modifient le même fichier, l'un peut effacer les changements de l'autre et il devient impossible de suivre les dernières modifications viables.

Git - Évitez de perdre la version du fichier avec VCS

Ce problème se produit déjà pour un fichier unique. Je vous laisse imaginer à quel point cela peut être désordonné avec des milliers de fichiers.

La réponse immédiate serait: Git est le système de contrôle de version le plus utilisé au monde et est considéré comme la norme pour toutes les industries.

Contrairement aux anciens systèmes de contrôle de version centralisés tels que SVN et CVS, Git est distribué: chaque développeur a l'historique complet du code localement. Ainsi, si le serveur meurt et que les fichiers sont perdus, n'importe lequel des utilisateurs peut restaurer la base de code. Chaque clone est vraiment une sauvegarde complète de toutes les données.

Git - Centralisé VCS versus Décentralisé DVCS

Git dispose également d'un excellent support pour le 'branching', la fusion de code et la réécriture de l'historique. Cela permet une grande flexibilité et de créer de nombreux workflows et outils innovants. Les 'Pull Requests' sont de ces outils si populaires, ils permettent aux équipes de collaborer sur les branches Git et d'examiner efficacement le code des autres avant la fusion de code.

Parfait, nous savons pour quoi et pourquoi nous utilisons Git. Commençons!