6
Mémo Git Introduction Présentation Git est un logiciel de gestion de versions décentralisé. Ce mémo est un extrait du livre : https://git-scm.com/book/fr Des objets Un dépôt Git peut être vu comme une collection d’objets liés entre eux. Chaque objet est identié par une chaîne de 40 caractères hexadécimaux correspondant à la somme de contrôle de son contenu. Il y a 3 types d’objets : • blob : les données • tree : les arborescences • commit : une version du répertoire de travail Un objet de type «arborescence» peut contenir des objets «données» et «arbores- cence». Le répertoire de travail est lui-même un objet de type «arborescences». L’historique d’un dépôt Git c’est l’ensemble des versions du répertoire de travail. Pour identier une version, Git s’appuie sur un objet de type «commit». L’objet de type «commit» associe de nombreuses informations comme l’auteur, un message, une ver- sion de l’objet répertoire de travail mais aussi les «commits> parents. Figure 1: Historiques de commits 1

Mémo Git - iut-fbleau.fr · Mémo Git Introduction Présentation Git est un logiciel de gestion de versions décentralisé. Ce mémo est un extrait du livre :

  • Upload
    trantu

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Mémo Git

Introduction

Présentation

Git est un logiciel de gestion de versions décentralisé.Ce mémo est un extrait du livre : https://git-scm.com/book/fr

Des objetsUn dépôt Git peut être vu comme une collection d’objets liés entre eux. Chaque objetest identi�é par une chaîne de 40 caractères hexadécimaux correspondant à la sommede contrôle de son contenu. Il y a 3 types d’objets :

• blob : les données

• tree : les arborescences

• commit : une version du répertoire de travail

Un objet de type «arborescence» peut contenir des objets «données» et «arbores-cence». Le répertoire de travail est lui-même un objet de type «arborescences».L’historique d’un dépôt Git c’est l’ensemble des versions du répertoire de travail. Pouridenti�er une version, Git s’appuie sur un objet de type «commit». L’objet de type«commit» associe de nombreuses informations comme l’auteur, un message, une ver-sion de l’objet répertoire de travail mais aussi les «commits> parents.

Figure 1: Historiques de commits

1

Les espacesGit utilise 3 espaces di�érents pour manipuler toutes ces données.

• le répertoire de travail

• l’index

• l’historique

Le répertoire de travail présente dans un dossier de la machine, l’ensemble des �chiersdu dépôt. C’est le point d’entrée de l’utilisateur.L’index contient les données en préparation pour le commitLa tête (HEAD) de l’historique est un pointeur vers le commit qui sera utilisé commeprochain commit parent.

Figure 2: 3 espaces de données

À distanceAvec les commandes push, fetch et pull, il est possible d’envoyer ou de recevoir la to-talité de l’historique d’une branche vers un serveur distant. Ce qui permet de travaillerà plusieurs sur le même projet.

Resources

Pour avoir de l’aide sur git, il est possible de lancer "man git". Pour avoir de l’aide surla commande "git log" il est possible de lancer "man git-log".

Principales commandes

Toutes les commandes git sont de la forme suivante :

2

Figure 3: Serveurs distants

git action [options] argument

addAjouter un �chier à suivre dans l’index. Pour préparer un commit.

git add chemin/vers/fichier

commitValider l’index actuel pour créer un commit

git commit -m "Mon message de commit"

con�gPermet de con�gurer les variables de paramétrage de gitL’option global permet de con�gurer les variables de l’utilisateur, donc valable pourl’ensemble des projets de l’utilisateur.L’option system permet de con�gurer les variables de tous les utilisateurs.

git config --global user.name "Denis Monnerat"

initInitialiser un répertoire de travail comme un dépôt local git. Permet d’initialiserl’ensemble des 3 espaces.Exemple pour le répertoire courant :

git init .

3

logObserver l’historique des changements

git log

di�Observer la di�érence entre 2 commits, permet par exemple de voir quelles sont lesdi�érences entre 2 commits sur un �chier donné.

git diff

statusObserver l’état de l’index et du répertoire de travail

git status

rmSupprimer un �chier de l’index

git rm chemin/vers/fichier

mvDéplacer un �chier. C’est équivalent à copier le �chier puis supprimer le �chierd’origine.

git mv chemin/vers/fichier chemin/vers/nouveau/fichier

remotePermet de manipuler les adresses des adresses des index distants.

git remote add origin https://github.com/tclavier/tp-git-blog.git

pushPermet d’envoyer une copie de l’index des changements vers un serveur distant

git push origin master

pullPermet de recevoir une copie de l’index d’un serveur distant

git pull origin master

clonePrépare une copie de travail depuis un serveur distant

git clone URL

4

cleanSupprime les �chiers non suivis par git

git clean -f

tagPermet de poser une étiquette sur un commit donné.

git tag 1.0.0

mergeFusionne 2 branches.

git merge ma-branche

rebaseConcatène 2 branches.

git rebase ma-branche

branchCrée un branche de travail

git branch ma-branch

checkoutChange la version de travail par une branche ou les �chiers du dernier commit

git checkout ma-branch

cherry-pickPermet de prendre un commit quelconque et de l’appliquer localement.Exemple :

git cherry-pick ma-branche

Permet d’appliquer le dernier commit de la branche «ma-branche» dans la branchecourante.

1 Fichiers particulier

.gitignoreListe des �chiers ou répertoires que git doit ignorer

5

revertCrée un patch de retour en arrière a�n d’annuler certains commits.

git revert HEAD~3

Va créer un patch pour annuler les 4 derniers commits.

6