La différence entre la zone de préparation et la bibliothèque locale dans git : la zone de préparation, également appelée zone d'index, est une zone de transition entre l'espace de travail et l'entrepôt local. Elle enregistre l'état du code de l'espace de travail (s'il y en a eu). changements, ou si ce qui change) et le référentiel local enregistre l'état du code local.
L'environnement d'exploitation de ce tutoriel : système Windows 7, Git version 2.30.0, ordinateur Dell G3.
1. Compréhension des concepts liés à git Warehouse
Si vous souhaitez comprendre en profondeur les commandes git, vous devez comprendre plusieurs concepts liés à git Warehouse. Tout d'abord, jetez un œil à un répertoire de code local D : répertoire gittest :
Il convient de noter que .git est un répertoire caché et que vous devez afficher les fichiers cachés pour le voir.
Répertoire de travail : En termes simples, les fichiers ou répertoires enregistrés localement appartiennent à l'espace de travail et les modifications de code sont généralement effectuées dans l'espace de travail. Généralement, les fichiers locaux, à l'exception du répertoire caché .git, appartiennent à l'espace de travail. Les mydir, file1.txt et file2.txt vus dans l'image ci-dessus appartiennent tous à l'espace de travail.
Stage : Également connue sous le nom de zone d'index. Comme son nom l'indique, il s'agit d'une transition entre l'espace de travail et l'entrepôt local. Elle enregistre l'état du code de l'espace de travail (s'il y a des changements, ou si ce qui change). Situé dans le répertoire .git.
Dépôt local (dépôt) : enregistre l'état du code local et se trouve dans le répertoire .git.
Compréhension du statut :
Pensez-y, lorsque nous modifions habituellement un fichier important, nous devons d'abord faire une sauvegarde, afin d'éviter les erreurs de modification et finalement le restaurer. Si le fichier lui-même est volumineux, il occupera plus d’espace s’il est sauvegardé, ce qui n’est pas rentable. Il existe un autre moyen, qui consiste à enregistrer l'état de modification du fichier au lieu de sauvegarder le fichier lui-même. L'état du fichier est similaire à la description suivante :
La première ligne du fichier : Remplacer xxx par ****
Entre la troisième et la quatrième ligne du fichier, une ligne est ajoutée, le contenu est...
Pour parler franchement, l'état du fichier est L'enregistrement de modification du fichier. Sur la base de l'enregistrement de modification, nous pouvons savoir quelles modifications nous avons apportées au fichier. Selon l'enregistrement de modification, nous pouvons également restaurer le fichier dans son état. avant la modification.
2. Explication des commandes git
Plusieurs commandes liées à l'affichage du statut :
git status Afficher les modifications dans les fichiers entre l'espace de travail, la zone de préparation et l'entrepôt local
git diff Afficher l'espace de travail et les différences dans la zone de préparation
git diff --cached Vérifiez les différences entre la zone de préparation et l'entrepôt local
git diff HEAD Vérifiez les différences entre l'espace de travail et l'entrepôt local
Les opérations correspondantes de certaines commandes sont les suivantes :
Ci-dessous Prenons un exemple spécifique pour illustrer que la modification du fichier local entraînera des changements dans les zones associées. Avant la modification, l'état entre la zone de travail, la zone de préparation et l'entrepôt local est cohérent (1) Ajoutez le fichier de modification local file1.txt à Ajouter. cette ligne
git status Vérifiez les modifications des fichiers entre l'espace de travail, la zone de préparation et l'entrepôt local
Comme vous pouvez le voir sur l'image ci-dessus,
Changements non préparés pour le commit :, le fichier de description est dans The l'espace de travail a changé, mais les modifications n'ont pas encore été soumises à la zone de préparation
git diff pour visualiser les changements entre l'espace de travail et la zone de préparation
Comme le montre l'image, ce qui s'est passé entre l'espace de travail et la zone de préparation C'est parce que le fichier local a été modifié et que la modification n'a pas été soumise à la zone de préparation
git diff HEAD Vérifiez l'état entre l'espace de travail et l'entrepôt local
Comme vous pouvez le voir sur la photo ci-dessus, l'espace de travail Des différences apparaissent également avec les entrepôts locaux. C'est très simple pour le moment, le statut de l'entrepôt local et de la zone de transit est cohérent git diff --cached Vérifiez la zone de transit et l'entrepôt local, et vous constaterez qu'il n'y a aucune différence entre eux
. (2) Soumettez les modifications locales à la zone de préparation
Zone de préparation où les modifications locales sont soumisesstatut gitVous pouvez voir que les modifications ont été soumises à la zone de préparation :
Modifications à valider :
Après la soumission, utilisez git diff pour vérifier et vous constaterez qu'il n'y a aucune différence entre l'espace de travail et la zone de transit.Mais il existe des différences entre la zone de préparation et la zone de travail.
git diff --cached
De même, en utilisant git diff HEAD, vous constaterez qu'il existe encore des différences entre l'espace de travail et l'entrepôt local
(3) Soumettez les modifications à l'entrepôt local
git commit -m "ajoutez une ligne dans file1.txt" modifiera Submit depuis la zone de transit vers l'entrepôt local
Vérifiez le statut de git, en demandant Votre branche est en avance de 'origin/master' d'1 commit. Cela indique que les modifications dans l'espace de travail ont été soumises au entrepôt local, mais n'ont pas été poussés vers la succursale distante.
git diff, git diff --cached, git diff HEAD ne trouvera aucune différence dans les invites. Étant donné que les modifications apportées à l'espace de travail ont été soumises à l'entrepôt local, le statut de l'espace de travail, de la zone de préparation et de l'entrepôt local est actuellement cohérent.
Opération inverse
git add – git checkout renvoie le fichier d'espace de travail à l'état de la zone de préparation et remplace le fichier de l'espace de travail par le fichier de la zone de préparation.
Par exemple, si le fichier file1.txt est modifié dans l'espace de travail, il n'a pas encore été soumis à la zone de stockage temporaire. Si vous souhaitez abandonner la modification, vous pouvez utiliser
git checkout file1.txt pour renvoyer le fichier dans la zone de transit (abandonner la modification)
git commit – git reset HEAD pour extraire le dernier fichier soumis à l'entrepôt local à la zone de préparation. N’affecte pas la zone de travail.
Résumé :
Si nous voulons abandonner une certaine modification du fichier local (espace de travail) :
Apprentissage recommandé : "Tutoriel Git"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!