GIT : usage local (développeur seul)

Un dépôt local

FondamentalDépôt local : définition et création

Un dépôt local Git est un répertoire suivi par Git.

On le reconnait par la présence d’un dossier .git à sa racine. Ce dossier et les fichiers qu’il contient ne doivent pas être modifiés. Seul Git les met à jour.

MéthodeCréation d’un dépôt local suivi par Git

Aller dans le répertoire de votre projet, le créer le cas échéant.

Dans le shell Git, lancer la commande suivante :

1
git init

Git va créer le répertoire de suivi .git

Votre dossier est maintenant suivi par Git

Les différents états des fichiers

Les fichiers du dépôt peuvent se trouver dans 4 principaux états :

  • non suivi (untracked) : tout nouveau fichier est par défaut non suivi par Git.

  • modifié : un fichier suivi par Git est modifié par rapport à l’historique.

  • indexé (stage) : un fichier est sélectionné pour prendre en compte ses modifications lors d’un prochain enregistrement dans l’historique.

  • non modifié ( à jour par rapport à l’historique de Git).

SyntaxeEtat du dépôt

Pour connaître l’état d’un dépôt Git, utiliser la commande suivante :

1
git status

SyntaxeSauvegarder l’état des fichiers

Réaliser une sauvegarde de l’état du projet nécessite 2 étapes :

  • Indiquer parmi les fichiers modifiés, ceux qui doivent être pris en compte.

  • Effectuer la sauvegarde en lui donnant une description.

1
git add *
1
git commit -m "description"

SyntaxeVisualiser les sauvegardes

Git attribue a chaque sauvegarde un identifiant. La liste des sauvegardes successives peuvent être affichées avec l’option log.

1
git log --oneline

SimulationExercice

Créer un dépôt Git pour un projet de test nommé : PROJET_TEST_GIT

Créer le fichier projet.html

Ajouter le fichier au dépôt

Editer le fichier pour saisir le code html minimal d’une page web

Enregistrer les modifications dans l’historique de Git

Editer la page web pour ajouter du contenu et réaliser plusieurs commit.

Visualiser votre dépôt avec git statut et git log

Annuler des commits (reset et revert)

Il est possible d’annuler un commit de l’historique suivant 2 approches :

  • en revenant en arrière dans l’historique, c’est à dire en effaçant les enregistrements (perte de l’historique).

  • en annulant les précédents changement pour en faire un nouveau commit dans l’historique (conservation de l’historique)

SimulationExercice

Lire la présentation des commandes reset et revert ci-dessous.

Tester les commandes reset et revert sur votre dépôt Git nommé PROJET_TEST_GIT de l’exercice précédent.

Visualiser l’historique et le contenu des fichiers du projets pour constater leur fonctionnement.

La commande reset de git

L’option reset permet d’annuler des précédents commits.

Syntaxe

L’option --soft annule le précédent commit en conservant les fichiers indexés. Les fichiers sont inchangés.

1
git reset --soft HEAD~1

L’option --mixed annule le précédent commit et annule aussi la sélection des fichiers indexés. Les fichiers sont inchangés

1
git reset --mixed HEAD~1

L’option --hard annule le précédent commit, annule la sélection des fichiers indexés et supprime les modifications dans le fichiers. Les fichiers sont remis dans l’état correspondant à la précédente sauvegarde.

1
git reset --hard HEAD~1
La commande revert
Annuler un commit en conservant l’historique.

Annule un commit et le résultat est enregistré dans un nouveau commit.

Conflit possible s’il n’est pas appliqué au dernier commit.

La création d’une nouveau commit implique la rédaction d’un commentaire. Git ouvre un éditeur dans le shell et propose un commentaire par défaut. A valider pour finaliser le revert.

1
git log --online
2
git revert 6cdg26
3
git revert HEAD~0
ConseilGit et éditeur de texte

La commande revert va générer un nouveau commit et donc elle va avoir besoin d’un message décrivant le commit.

Pour saisir ce message, la commande revert va ouvrir un éditeur de texte.

Par défaut cet éditeur est VI : un éditeur très puissant en ligne de commande.

Lorsque l’on ne connait pas l’éditeur VI, son utilisation est très particulière au début.

Il est possible d’indiquer à git l’utilisation d’un autre éditeur plus conventionnel et simple d’utilisation

1
git config --global core.editor "nano"

Cette commande permet de configurer git pour qu’il utilise l’éditeur nano (éditeur simple sous Linux).

Exploiter l’historique des sauvegardes

Visualiser l’historique des commits

La commande log accepte de nombreuses options pour adapter l’affichage des commits. Quelques exemples :

1
git log --oneline
2

Visualiser les différences entre 2 commits

Afficher la différence entre des 2 commits d’identifiant xxxxx et yyyy :

1
git diff xxxx yyyy

En vert (signe +) : ce qui a été ajouter dans la sauvegarde yyyyy par rapport à xxxxx

En rouge (signe -) : ce qui a été supprimé dans la sauvegarde yyyyy par rapport à xxxxx

Utiliser un outil git graphique

Soit SourceGit.

Soit GitGraph pour Vscode

AttentionDéplacer le pointeur HEAD

Il est possible de naviguer dans l’historique en déplaçant la position du pointeur HEAD.

A manipuler prudemment

1
git symbolic-ref HEAD --> refs/heads/master
2
git checkout xxxx
3
git status
4
git checkout master --> pour revenir sur le dernier commit