Fondamentaux de Git

Publié le : 15-01-2019 19:27

Introduction

Git est un outil de gestion de version désynchronisé (on parle aussi de gestion de versions décentralisées). Il est essentiellement utilisé dans le cadre de la création de logiciels. En simplifiant, le principe est plutôt simple : permettre aux membres d'une équipe de travailler à des rythmes différents, sur un "dépôt" commun. Tout en travaillant indépendamment sur des "branches" parallèles, partant d'une racine commune.

L'idée était de donner la possibilité d'intégrer ou non les modifications d'un membre de l'équipe sur la solution qui sera déployée en production (et le cas échéant de revenir à une version antérieur). Correctement employer ce système permet une gestion en arborescence des versions.

Il y a bien entendu d'autres étapes intermédiaires non abordées dans cette introduction.

 

Le vocabulaire spécifique de l'outil

Le dépôt : c'est un espace de stockage qui est disponible pour les membres de l'équipe.

Le dépôt local : c'est une copie du dépôt natif hébergée sur le poste d'un membre de l'équipe sur lequel il effectue ses modifications et ses tests avant d'impacter le dépôt natif.

Le tronc  : c'est l'élément "virtuel" sur lequel vienne se greffer les différentes branches.

Les branches : c'est l'élément-clé qui permet de paralléliser les évolutions (et de revenir dans le passé en cas de régression), c'est l'objet qui porte les modifications d'un projet.

Fusion de branches : l'action d'appliquer les modifications de deux branches parallèles sur le tronc.

Conflit de modifications : quand deux branches sont fusionnées et que plusieurs modifications sont contradictoires on parle alors de conflit de modifications.

Commit : l'action de valider une transaction.

Tag : c'est un objet utilisé pour identifier des "commit" de manière textuelle.

Le blob (binary large object) :  un groupe de données qui est le contenu d'un fichier.

 

Création et clonage de dépôt

Créer un nouveau dépôt 

git init

Cloner un projet :

git clone git@<SERVEUR>:<DISQUE>:/Git/<PROJET>.git

Récupération des modifications de la branche active

Récupérer la branche mise à jour :

git pull

Modification de la branche active

Préparer ses mises à jours (ajouter au Head mais pas au dépôt distant) :

git commit

Préparer ses mises à jours avec un message : 

git commit -m "MESSAGE"

Envoyer ses mises à jours au dépôt distant

git push origin <BRANCHE>

Les branches

Créer une nouvelle branche et passer directement dessus

git checkout -b <BRANCHE>

Changer de branche

git checkout <BRANCHE>

Ajouter la branche au dépôt distant

git push origin <BRANCHE>

Fusionner deux branches

git merge <BRANCHE_1><BRANCHE_2>