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>