Date de première publication : 2018/10/16
Cette page est en cours d'écriture
Cette page est dédiée à l'utilisation de l'outil git dans le cadre des TPs pour apprendre à utiliser cet outil. En aucun cas, cette page ne cherche à se substituer à la page officielle qui est bien plus complète.
Des commandes de base en ligne de commande sont présentées mais regardez bien si votre outil de développement ne prend pas déjà en charge les commandes git ou alors avec des outils graphiques spécialisés comme gitkraken : CLion, Eclipse, IntelliJ, Netbeans, Visual Studio Code
Il exite un plugin pour geany :-)
Principe de base
git est un gestionnaire de versions. Cet outil permet de garder une trace de toutes les versions d'un logiciel en développement (l'outil n'est pas adapté au format binaire)
Le logiciel (avec ses versions) est stocké dans un dépôt (repository) local et/ou distant. Le projet est disponible dans le répertoire de travail (working directory. Si un fichier est modifié, pour qu'il fasse partie de la prochaine version, il faut le marquer et le placer dans une zone d'attente dite staging area par une opération d'ajout add. Les fichiers en attente participent à la prochaine version par une opération de commit
git status
git add fichier_modifie
git commit -m "message clair"
Si nécessaire, on peut revenir à une version plus ancienne du logiciel, gérer des développements en parallèle (branche), fusionner des branches ... On peut presque tout faire !
Un seul impératif : il ne faut pas effacer le dépot (un simple répertoire sur la machine locale comme .git
!)
Configuration du compte
Pour configurer un compte git, c'est très facile à faire au niveau de son compte utilisateur sur une machine :
git config --global user.name "Prenom NOM"
git config --global user.email "prenom.nom@etu.isima.fr"
On peut régler cette identification au niveau de la machine ou par projet/répertoire.
Création d'un projet sous gitlab
Il faut se connecter sur le gitlab.isima.fr ou sur gitlab.com
Créer un nouveau projet en cliquant sur le bouton
Remplir quelques champs...
... créer le projet
Récupération d'un répertoire pour l'associer à notre projet
Nous allons récupérer un squelette de TP (TP4C - HallofFame) pour le transférer vers votre propre projet gitlab.
Vous devez avoir au préalable :
- configuré votre compte
- créé un nouveau projet dans gitlab.isima.fr (HallOfFame)
- récupéré le code d'un autre projet
git clone https://gitlab.com/kiux/C4.git
Il y a maintenant un répertoire caché .git
qui prouve que le répertoire courant est un dépôt gitlab
Il faut associer le répertoire courant à votre dépôt gitlab :
cd projet
git remote rename origin old-origin
git remote add origin git@gitlab.isima.fr:votrelogin/leprojet.git
git push -u origin --all
git push -u origin --tags
Le projet vous appartient et toute mise à jour sera faite désormais sur votre dépôt git.
Gestion des mises à jour dépôt
Comme déjà mentionné pour mettre à jour le dépôt local, c'est facile : il suffit d'ajouter à la zone d'attente le ou les fichiers modifiés puis de faire un commit
git add fichier_modifie
git commit -m "message clair"
Si l'on ne se rappelle plus dans quel "état" sont les fichiers, il suffit de faire
git status
Si vous voulez sauvegarder votre dépôt local dans le dépôt distant, il suffit de "pousser" :
git push
Bien entendu, vous pouvez tout à fait arrêter de suivre des fichiers avec un
git rm fichier
Il est également possible d'ignorer des fichiers ou des répertoires en définissant un fichier texte .gitignore
.
Gestion de la zone d'attente
La commande suivante permet (entre autres) de lister les fichiers en zone d'attente et ceux dans le répertoire de travai :
git ls-files
Pour enlever un fichier qui aurait été mis par erreur dans la zone d'attente :
git reset fichier
Pour comparer un fichier du répertoire de travail à version en zone d'attente :
git diff fichier
Gestion des versions et historique
- liste des commits pour un fichier
- revenir en arrière pour un fichier du dernier commit ou d'un commit quelconque
- taguer une version et y revenir si nécessaire
Retour en arrière d'un fichier
Si vous voulez revenir à