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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. 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 . puis git commit -m "Corrige b"
    • git commit -m "Corrige b" sans rien ajouter avant
    • git add b.txt puis git commit -m "Corrige b"
    Voir la réponse

    git add b.txt puis git commit -m "Corrige b"

    Seul ce qui est dans l'index part dans le commit. -a et add . y mettent aussi a.txt ; sans git add, l'index est vide et Git répond « no changes added to commit ».