Maison > outils de développement > git > le corps du texte

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

青灯夜游
Libérer: 2021-12-29 17:29:08
original
4733 Les gens l'ont consulté

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.

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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 :

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?
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 :
Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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éparationQuelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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从Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?. (2) Soumettez les modifications locales à la zone de préparation

Zone de préparation où les modifications locales sont soumises

statut git

Vous 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.

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?Mais il existe des différences entre la zone de préparation et la zone de travail.
git diff --cached

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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.

Quelle est la différence entre la zone de transit et la bibliothèque locale dans git ?

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) :

  • Si la modification n'a pas été soumise à la zone temporaire, nous pouvons utiliser git checkcout pour restaurer
  • Si le une modification a été soumise à la zone de stockage temporaire Si la zone de stockage n'a pas encore été soumise à l'entrepôt local, utilisez git reset HEAD pour restaurer l'état de la zone de stockage temporaire, puis utilisez git checkout pour restaurer l'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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!