Git : dépôt, index, commit
Le modèle de Git : répertoire de travail, index et dépôt, ce que contient un commit, l'empreinte qui l'identifie, HEAD et les quatre états d'un fichier.
- 24 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Dépôt Git : de quoi s'agit-il ?
Voir la réponse
Base de données, rangée dans le dossier .git à la racine du projet, qui contient tout l'historique des commits.
Supprimer le dossier .git supprime l'historique mais laisse les fichiers du projet : le répertoire de travail n'est qu'une copie de travail d'une version.
Dans ce git status, a.txt figure dans deux sections. Que contiendra a.txt dans le prochain commit ?
```text
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: a.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
b.txt
c.txt`- La version indexée par le dernier git add
- La version actuelle du fichier, avec toutes ses modifications
- Aucune : Git refuse un fichier présent dans les deux sections
- La version du dernier commit, sans aucune modification
Voir la réponse
La version indexée par le dernier git add
L'index garde l'état du fichier au moment du git add. Une modification faite après est dans la section « Changes not staged » : il faut un nouveau git add pour qu'elle parte.
Les fichiers que tu édites sont dans le …, ceux du prochain commit dans l'…, et l'historique dans le ….
Voir la réponse
Les fichiers que tu édites sont dans le répertoire de travail, ceux du prochain commit dans l'index, et l'historique dans le dépôt.
Un commit enregistre dans le dépôt une copie de l'index, qui ne se vide pas pour autant ; ce que tu as modifié sans l'ajouter reste seulement dans le répertoire de travail.
Index (zone de préparation) : de quoi s'agit-il ?
Voir la réponse
Zone intermédiaire où l'on compose le contenu exact du prochain commit, fichier par fichier.
Elle permet de valider seulement une partie des modifications en cours : ce qui n'a pas été ajouté à l'index ne part pas dans le commit.
a.txt et b.txt sont suivis et tous deux modifiés. Tu veux valider seulement b.txt. Quelle suite de commandes le fait ?
git commit -a -m "Corrige b"git add .puisgit commit -m "Corrige b"git commit -m "Corrige b"sans rien ajouter avantgit add b.txtpuisgit commit -m "Corrige b"
Voir la réponse
git add b.txtpuisgit commit -m "Corrige b"Seul ce qui est dans l'index part dans le commit.
-aetadd .y mettent aussi a.txt ; sansgit add, l'index est vide et Git répond « no changes added to commit ».