0% ont trouvé ce document utile (0 vote)
55 vues19 pages

Introduction à Git et gestion de versions

Ce document décrit les principes et commandes de base du système de gestion de versions Git. Il définit ce qu'est un SGV, explique les concepts clés de Git comme le dépôt local et distant, et liste des commandes courantes comme l'initialisation, l'ajout de fichiers, les commits et la synchronisation.

Transféré par

rayane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
55 vues19 pages

Introduction à Git et gestion de versions

Ce document décrit les principes et commandes de base du système de gestion de versions Git. Il définit ce qu'est un SGV, explique les concepts clés de Git comme le dépôt local et distant, et liste des commandes courantes comme l'initialisation, l'ajout de fichiers, les commits et la synchronisation.

Transféré par

rayane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module TC4

Gestion des versions - Versioning

Utilitaire git

Classe : SIO12 -SLAM Prof. M. LAROUSSI


Système de gestion de version

Définitions

Un gestionnaire de version est un système qui enregistre l'évolution d'un fichier ou


d'un ensemble de fichiers d'un même projet au fil du temps de manière, à ce qu'on
puisse rappeler une version antérieure d'un fichier à tout moment.

▪ Un logiciel de gestion de versions (ou VCS en anglais, pour version control system)
est un logiciel qui permet de stocker un ensemble de fichiers en conservant la
chronologie de toutes les modifications qui ont été effectuées dessus.

▪ Il permet notamment de retrouver les différentes versions d'un lot de fichiers


connexes.

Source : https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions
Système de gestion de version

▪ Pourquoi un système de gestion de version ?

▪ Retour facile aux versions précédentes

▪ Suivi de l’évolution du projet au cours du temps


▪ Travail en parallèle sur des parties disjointes du projet et gestion des modifications
concurrentes

▪ Détection et correction des erreurs

▪ Identification des responsabilités et des modifications apportées : QUI FAIT QUOI ?

▪ Accès à la version d'un fichier à une date donnée


Catégories de SGV

Système de gestion de version local

Cette méthode est la plus courante pour la


gestion de version est généralement de
recopier les fichiers dans un autre
répertoire (peut-être avec un nom incluant
la date dans le meilleur des cas).

Avantages
▪ Gestion et utilisation très simplifiées.

Inconvénients
▪ Très sensible aux pannes.
▪ Ne permet pas la collaboration.
Catégories de SGV

Système de gestion de version centralisé


Catégories de SGV
Système de gestion de version centralisé (SVN)

Avantages
▪ Gestion et utilisation simples.
▪ Contrôle fin des permissions
▪ Chaque utilisateur sait ce que font les autres

Inconvénients
▪ Méthode très sensible aux pannes.
▪ Inadaptée aux très grands projets et/ou avec une forte structure
hiérarchique.
Catégories de SGV
Système de gestion de version distribué
Catégories de SGV

Dans un DVCS (tel que Git, Mercurial, Bazaar or Darcs), les clients dupliquent complètement
le dépôt.
Si le serveur disparaît, n'importe quel dépôt d'un des clients peut être copié sur le serveur
pour le restaurer.
Chaque extraction devient une sauvegarde complète de toutes les données (voir figure 1-3).

Avantages
• Moins sensible aux pannes.
• Adapté aux grands projets
• Pouvoir utiliser ce système hors connexion
• Ne pas être dépendant d’un dépôt centralisé (panne, temps, . . . )
• Pouvoir échanger ses fichiers avec une partie des développeurs.

Inconvénients
• Gestion et utilisation plus compliquées.
• Peut devenir très complexe structurellement.
Le SGV git

▪ SGV décentralisé (DVCS)


▪ Très répandu (surtout dans le monde du logiciel libre)
▪ Développement actif
▪ Ressources croissantes (documentations, outils graphiques, ...).

Bref historique (Wikipedia)


▪ De 1991 à 2002, le noyau Linux était développé sans utiliser de système de gestion de
version.

▪ A partir de 2002, la communauté a commencé à utiliser BitKeeper, un DVCS


propriétaire.

▪ En 2005, suite à un contentieux, BitKeeper retire la possibilité d’utiliser gratuitement son


produit.

▪ Linus Torvalds lance le développement de Git et après seulement quelques mois de


développement, Git héberge le développement du noyau Linux.
Git - Les principes de base

Un dépôt (Repository) Git est une sorte de système de fichiers (base de données),
enregistrant les versions de fichiers d’un projet à des moments précis au cours du
temps sous forme d’instantanés.
Git - Les principes de base

Le répertoire Git/dépôt /Repository / Référentiel

Un dépôt Git est un entrepôt virtuel de votre projet. Il permet d'enregistrer les versions de
votre code et d'y accéder au besoin.
Git - Les principes de base

Contenu du
fichier config

Le répertoire La zone de
de travail transit/d’inde
x (Stage)
Extraction unique d’une version du
projet depuis la base de données du Simple fichier contenant des informations
dépôt. à propos de ce qui sera pris en compte
lors de la prochaine soumission.
Etats d’un fichier dans Git
Etats d’un fichier dans Git
Commandes de base

1) Création d'un nouveau Repository


A partir de votre espace Github, créer un nouveau Repository (Référencement) et
récupérer l'URL de votre dépôt. Cette URL sera votre principal moyen d'accès au dépôt.

2) Installer git sur votre espace de travail local


#apt update & apt install git-all //Linux
Télécharger et installer le package (voir TP) //Windows

3) Initialiser un dépôt local sur votre machine locale


git init //Le repertoire correspondant se nomme : .git

4) Créer une nouvelle branche


git branch -M main

5) Associer le depot local au dépôt distant


git remote add origin https://github.com/arlaroussi/CPROG.git

6) Envoyer les modifications du dépôt local vers le site distant


git push -u origin main
Commandes de base
▪ Indexer l’ajout ou les changements d’un fichier
git add fichier

▪ Soumettre les modifications indexées en zone de transit


git commit –m "Message" //Créer des messages significatifs

▪ Annuler les modifications indexées d’un fichier


git reset fichier

▪ Afficher les dépôts distants


git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)

▪ Retier le fichier de l'index (Déversionner), et le supprimer du cache


git rm fichier

▪ Retier le fichier de l'index (Déversionner), mais le garder dans le cache


git rm --cached fichier

▪ Annuler un commit et revenir à l'état initial


git checkout <num_commit>
Commandes de base
▪ Afficher le détail des modifications non indexées
git diff

▪ Afficher le détail des modifications indexées


git diff --staged

▪ Visualiser ce qui a été indéxé


git diff --cached

▪ Voir l’historique des soumissions


git log
→ on pourra utiliser l'option --oneline pour moins de details

▪ Récupérer les données modifiées depuis le serveur distant et les fusionner dans votre branche de
travail actuel.
git pull ServeurDist branch

Cette commande équivaut aux deux commandes suivantes :


git fetch
git merge origin
Commandes de base
▪ Cloner un dépôt distant.
git clone git://git.kernel.org/pub/scm/.../linux.git rep-local
cd rep-local

▪ Annuler des commit et revenir aux états précédents :


git revert HEAD (dernier commit)
git revert HEAD~ (2 derniers commit )
git revert HEAD~2 (3 derniers commit)
▪ HEAD : dernier commit ;
▪ HEAD^ : avant-dernier commit ;
▪ HEAD^^ : avant-avant-dernier commit ;
▪ HEAD~2 : avant-avant-dernier commit (notation équivalente) ;
▪ d6d98923868578a7f38dea79833b56d0326fcba1 : indique un numéro de commit ;
▪ d6d9892 : indique un numéro de commit version courte.

▪ Afficher l’état des fichiers du répertoire courant


git status

▪ Untracked files : fichiers non versionnés.


▪ Changes to be committed : modifications (ajout, suppression, changements) chargées en zone de transit
(staging area), ou indexées.
▪ Changes not staged for commit : modifications n’ayant pas été chargées en zone de transit (ou indexées).
Commandes de configuration globale

▪ Paramétrage du nom et du mail


git config --global user.name "Sophie LAMBERT"
git config --global user.email [email protected]

▪ Lister tous les paramètres de la configuration :


git config --list

▪ Définir un éditeur par défaut :


git config --global core.editor nano

▪ Paramétrer le serveur proxy :


git config --global http.proxy http://USER:PASSWORD@PROXYSERVER:PORT

▪ Exclure des fichiers lors de l'envoi vers le serveur distant


git config --global core.excludefiles **/*.log

▪ Changer l'URL du site distant


git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

Vous aimerez peut-être aussi