GIT : usage local (développeur seul)
Un dépôt local
Fondamental : Dé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éthode : Cré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 :
git initGit 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).
Syntaxe : Etat du dépôt
Pour connaître l’état d’un dépôt Git, utiliser la commande suivante :
git statusSyntaxe : Sauvegarder 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.
git add *git commit -m "description"
Syntaxe : Visualiser les sauvegardes
Git attribue a chaque sauvegarde un identifiant. La liste des sauvegardes successives peuvent être affichées avec l’option log.
git log --oneline
Simulation : Exercice
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)
Simulation : Exercice
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.
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
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.
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.
git log --online
git revert 6cdg26git revert HEAD~0Conseil : Git 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
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 :
git log --oneline
Visualiser les différences entre 2 commits
Afficher la différence entre des 2 commits d’identifiant xxxxx et yyyy :
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
Attention : Déplacer le pointeur HEAD
Il est possible de naviguer dans l’historique en déplaçant la position du pointeur HEAD.
A manipuler prudemment
git symbolic-ref HEAD --> refs/heads/master
git checkout xxxxgit statusgit checkout master --> pour revenir sur le dernier commit