Vous êtes ici : Accueil Tutoriels Mini-tutoriel sur Git

Mini-tutoriel sur Git

Ce tutoriel explique la base pour savoir se servir de Git. Cela vous permettra de cloner les projets présent sur ce site, mais étant donnés qu'ils sont en lecture seule, les opérations de mise à jour du dépôt inspyration.org ne seront pas réalisables.

Configurer GIT

Pour faire des validation qui soient lisibles, il faut que chacun déclare son nom, pour que chaque validation soit associé à la personne qui l'a conduite.

$ git config --global user.name "Prénom NOM"
$ git config --global user.email "adresse.courriel@serveur.com"

Transformer un répertoire en un dépôt

$ git init

Ceci crée un dépôt vide, ne contenant rien, quelque soit l'état du répertoire. Le dépôt est géré par l'entremise du répertoire .git que la commande vient de créer.

On peut alors rajouter une description succincte de ce que contient le dépôt :

$ vim .git/description

Rajouter un fichier ou un répertoire au dépôt

Le dépôt dispose d'un index des fichiers qu'il contient. Pour rajouter un fichier ou un répertoire, il suffit de faire ceci :

$ git add path

Si le chemin est un répertoire, le répertoire lui-même ainsi que tout son contenu (récursivement) est alors rajouté dans l'index.

Si, à l'intérieur d'un répertoire, on ne souhaite pas rajouter un fichier ou un répertoire, il faut alors créer un fichier .gitignore et y rajouter la liste de ce que l'on ne souhaite pas voir :

!.gitignore 				(ne pas ignorer le .gitignore)
.~lock.* (ignorer les fichiers temporaires libreoffice)
.buildpath (pour Eclipse)
.project
.settings
file (exemple d'un nom de fichier)
folder (exemple d'un nom de répertoire)

Puis, il faut rajouter le fichier .gitignore dans l'index des fichiers du dépôt.

$ git add path/to/.gitignore

Valider un ou plusieurs fichiers / répertoires

$ git commit file1 file2 folder1 folder2

La validation est un processus local. Les différentes versions des fichiers sont conservés localement.

On peut utiliser l'option -m pour rajouter le message de validation directement. Sans cela, un éditeur va s'ouvrir pour recueillir ce message. S'il est vide, le processus de validation est abandonné.

Valider tous les fichiers indexés

$ git commit -a

Attention, les fichiers non indexés (non rajoutés dans le dépôt avec la commande git add) ne seront pas validés.

La validation est un processus local. Les différentes versions des fichiers sont conservés localement.

Lorsque l'on utilise l'option -a, il est déconseillé d'utiliser l'option -m, ne serait-ce que pour vérifier la liste des fichiers réellement validés avant validation.

Vérifier le statut du dépôt

$ git status

Cela indique la liste des fichiers modifiés et la liste des fichiers ne faisant partie ni du dépôt, ni de la liste des fichiers à ignorer.

Voir le différentiel entre les fichiers actuels et la dernière validation

$ git diff

Il faut alors savoir interpréter un fichier diff pour visualiser les différences ou utiliser un lecteur de fichiers diff.

Avant toute validation, il est possible de réaliser un patch de la validation en faisant :

$ git diff > path/to/patch

On peut également le faire après coup. A tout moment, on peut faire un différentiel entre deux validations distinctes.

Supprimer toutes les modifications depuis le dépôt

$ git reset --hard

Le dépôt revient à son état après la dernière validation, mais cette commande ne touche pas les fichiers ne faisant pas partie du dépôt. Si un tel fichier a été supprimé, il est définitivement perdu, s'il a été modifié, les modifications perdurent et s'il a été créé, il reste toujours là.

Cloner un dépôt

$ git clone url_depot

Voici un exemple concret pour un dépôt en lecture écriture :

$ git clone git+ssh://inspyration.org/nom_depot.git

Voici un exemple concret pour un dépôt en lecture seule :

$ git clone http://inspyration.org/nom_depot.git

On peut rajouter un argument supplémentaire qui serait le nom que prendrait le dépôt local.

Rajouter un serveur distant

La validation de son code se fait toujours sur le dépôt local. Il est possible de transmettre ses validations à un serveur distant et de récupérer les validations faites par les autres sur son propre serveur.

La première étape consiste à créer le lien entre son dépôt et celui disponible sur le serveur distant :

$ git remote add nom_distant url

Voici un exemple :

$ git remote add origin git+ssh://inspyration.org/nom_depot.git

Bien sûr, il faut que le dépôt ait été créé et initialisé à vide coté serveur.

Pousser ses validations sur un serveur distant :

$ git push origin master

Ici, origin est le nom du serveur distant (voir paragraphe précédent) et master est le nom de la branche courante.

Rapatrier les validations sur le serveur vers son dépôt local

$ git pull origin master

Lister les branches disponibles sur le dépôt local

$ git branch

Attention, ce n'est pas parce qu'une branche existe sur un dépôt local qu'elle existe sur un dépôt distant et vice-versa. Chaque branche doit être poussée ou rapatriée indépendamment.

Lister les branches disponibles sur les dépôts local et distants

$ git branch -a

Pour les dépôts distants, on voit apparaître remotes/nom_distant/nom_branche_distante, comme, par exemple remotes/origin/master.

Créer une nouvelle branche

$ git checkout -b nom_nouvelle_branche

Cette commande crée la branche à partir de là où l'on se trouve et bascule vers elle.

Il faut que le dépôt soit dans un état propre et stable avant de créer une nouvelle branche.

Basculer vers une branche

$ git checkout nom_branche

Là encore, avant de basculer, il faut s'assurer d'être dans un état propre et stable.

Merger une branche vers la branche courante

En étant dans la branche courante :

$ git merge nom_branche

Résoudre un conflit de merge

$ git merge nom_branche
$ git status
$ git mergetool
$ git commit -a

-

Mots-clés associés : ,
Spinner