Avec Objis, apprenez à suivre les modifications de l’état d’un fichier dans Git. Comprenez les 3 états d’un fichier géré par Git ; ‘Unmodified’, ‘Modified’ et ‘Staged’ . Maîtrisez la notion d’indexation dans Git
Prérequis
Tutoriel création d’un dépôt Git
Objectifs
Identifier les différents états d’un fichier versionné avec Git
Programme
Partie 1 : indexation et commit d’un fichier non versionné
Partie 2 : modification d’un fichier indexé
Durée
20min
Partie 1 : indexation d’un fichier non versionné
Considérons le répertoire suivant :
QUESTION 1 : qu’est ce qui permet d’affirmer qu’il s’agit d’un dépôt Git ?
Lancez la commande ‘git status’ , qui donne le résultat suivant :
Expliquez
QUESTION 2 : quels sont les différents états d’un fichier dans Git ?
Quel est l’effet de la commande suivante : ‘git add pom.xml’ ?
Expliquez
Expliquez
Partie 2 : modification d’un fichier indexé
Editer le fichier pom.xml et identifier la section de dépendances JUnit. Notez en particulier le numéro de version de cette dépendance.
Modifiez la valeur de la version pour une version plus récente, par exemple 4.11
QUESTION : après cette modification, quel est l’état du fichier dans Git ?
QUESTION : comment connaître précisément la différence entre l’état actuel du fichier et l’état du fichier indexé ?
Expliquez la commande suivante : git diff –staged
Partie 3 : commit
Lancez la commande suivante :
QUESTION : que se passe t’il si vous lancez seulement la commande : ‘git commit’ c’est à dire sans l’option ‘-m’ ? Expliquez alors le rôle de l’éditeur configuré dans le tutoriel N°1 ‘Installation Git’
Que donne la commande suivante : git log
Expliquez l’ensemble des 40 caractères alphanumérique suivants : b82a04e3fa8a9f2857b1892da1d4526ef29edb96 ?
En particulier, quel lien avec le fichier .git\logs\refs\heads\master ?
QUESTION : que contient le fichier .git\log\HEAD ?
A VOUS DE JOUER : que donnent les commandes ‘git log -p‘ et ‘git log –stat‘ ?
Conclusion
Dans ce tutoriel, vous avez indexé un fichier, un répertoire et avez réalisé votre premier commit.