Tutoriel de dém...login
Tutoriel de démarrage rapide Git
auteur:php.cn  temps de mise à jour:2022-04-11 13:44:34

Espace de travail Git, zone de préparation et référentiel



Concepts de base

Commençons par comprendre les concepts d'espace de travail Git, de zone de préparation et de référentiel

  • Espace de travail : est le répertoire que vous pouvez voir sur votre ordinateur.

  • Zone de stockage temporaire : En anglais, cela s'appelle stage, ou index. Il est généralement stocké dans le fichier d'index (.git/index) sous le "répertoire git", c'est pourquoi on appelle parfois la zone de stockage temporaire l'index (index).

  • Dépôt : L'espace de travail a un répertoire caché .git Ce n'est pas l'espace de travail, mais le référentiel Git.

La figure suivante montre la relation entre la zone de travail, la zone de préparation dans le référentiel et le référentiel :

Le côté gauche de la figure est le zone de travail, avec la bibliothèque de versions à droite. La zone marquée « index » dans le référentiel est la zone de transfert (stage, index), et la zone marquée « master » est l'arborescence de répertoires représentée par la branche master.

Sur l'image, on peut voir que "HEAD" est en fait un "curseur" pointant vers la branche master. Par conséquent, là où HEAD apparaît dans la commande illustrée sur la figure, il peut être remplacé par master.

La zone identifiée par les objets dans l'image est la bibliothèque d'objets de Git, qui se trouve en fait dans le répertoire ".git/objects", qui contient divers objets et contenus créés.

Lorsque la commande "git add" est exécutée sur un fichier modifié (ou ajouté) dans l'espace de travail, l'arborescence des répertoires dans la zone de préparation est mise à jour, et le contenu du fichier modifié (ou ajouté) dans l'espace de travail. l'espace de travail sont écrits dans un nouvel objet dans la bibliothèque d'objets et l'ID de l'objet est enregistré dans l'index de fichier de la zone de stockage temporaire.

Lors de l'exécution d'une opération de validation (git commit), l'arborescence des répertoires dans la zone de préparation est écrite dans la bibliothèque de versions (bibliothèque d'objets) et la branche principale sera mise à jour en conséquence. Autrement dit, l'arborescence de répertoires pointée par master est l'arborescence de répertoires de la zone de stockage temporaire au moment de la soumission.

Lorsque la commande "git reset HEAD" est exécutée, l'arborescence des répertoires dans la zone de préparation sera réécrite et remplacée par l'arborescence des répertoires pointée par la branche principale, mais l'espace de travail ne sera pas affecté.

Lorsque la commande "git rm --cached <file>" est exécutée, le fichier sera supprimé directement de la zone de préparation et l'espace de travail ne sera pas modifié.

Lorsque la commande "git checkout." ou "git checkout -- <file>" est exécutée, les fichiers de l'espace de travail seront remplacés par tous les fichiers spécifiés dans la zone de préparation. Cette opération est dangereuse et effacera les modifications apportées à l'espace de travail qui n'ont pas été ajoutées à la zone de préparation.

Lorsque la commande "git checkout HEAD ." ou "git checkout HEAD <file>" est exécutée, tout ou partie des fichiers de la branche master pointée par HEAD seront utilisés pour remplacer la zone de transit. et le document de l'espace de travail. Cette commande est également extrêmement dangereuse, car elle effacera non seulement les modifications non validées dans l'espace de travail, mais également les modifications non validées dans la zone de préparation.

Site Web PHP chinois