Je trouve git difficile à comprendre car je nai pas trouvé le sens des mots utilisés pour les actions. Jai vérifié le dictionnaire pour la signification de « stage » et aucune des significations nétait liée aux concepts de contrôle de source.

Que signifie « stage » dans le contexte de git?

Commentaires

  • liés: Quel est lavantage de git ‘ s two -stage commit process (staging)?
  • Git a en effet son propre vocabulaire. Et comme chaque instruction est formulée dans un vocabulaire spécial, il est difficile de commencer.  » étape  » consiste à effectuer git add file.ext pour un fichier spécifique, ou git add . pour affecter tous les fichiers modifiés et non suivis. Les fichiers ajoutés de cette manière sont dits  » mis en scène  » et ils seront inclus dans le prochain  » commit « . Le commit est un instantané de votre travail créé par ex. avec git commit -m "I wrote something".
  • Git est difficile à comprendre car il ny a pas de didacticiel conceptuel. Tous passent par des détails inutiles.
  • Vouliez-vous supprimer la balise  » terminologie  » de cette question? Cela me semble une balise parfaitement valide.
  • Pour une raison quelconque, la meilleure façon dont je pourrais comprendre limportance de la mise en scène est à partir de cette réponse dans Quora: qr .ae / TbSK2I

Répondre

Pour préparer un fichier est simplement de le préparer finement pour un commit. Git, avec son index, vous permet de ne valider que certaines parties des modifications que vous avez effectuées depuis le dernier commit. Disons que vous travaillez sur deux fonctionnalités – lune est terminée, et lautre a encore besoin de travail. Vous aimeriez faire un commit et rentrer chez vous (5 heures, enfin!) Mais naimeriez pas commettre les parties de la deuxième fonctionnalité, ce qui nest pas encore fait. Vous mettez en scène les parties que vous savez appartenir à la première et la validation. Maintenant, votre validation est votre projet avec la première fonctionnalité terminée, tandis que la seconde est toujours en cours de travail dans votre répertoire de travail.

Commentaires

  • Bonne explication. Notez que git, en cours de distribution, vous permet évidemment de valider les deux fonctionnalités, puisque les commits sont locaux (au début). Néanmoins, vous voudrez peut-être diviser les modifications en un seul commit par fonctionnalité, et encore une fois, le transfert est pratique.
  • Je ne ‘ Je ne comprends pas pourquoi vous avez besoin dune mise en scène pour cela. Je peux le faire avec HG ou même SVN en validant uniquement les fichiers pertinents. Il semble que cette fonctionnalité est principalement conçue pour aider les personnes qui insistent pour travailler avec la ligne de commande là où elle ‘ est plus difficile o cases à cocher sur ce que vous commettez.
  • @jiggy git vous permet de mettre en scène une partie dun fichier. Vous pouvez également mettre en scène un fichier, apporter dautres modifications, puis valider létat dans lequel il se trouvait lors de la préparation. Vous pouvez ‘ faire cela en subversion.
  • @jiggy Dans SVN, il y a quelque chose, entre le moment où vous sélectionnez les fichiers / parties de fichiers à valider et lorsque vous avez fini décrire votre message de validation, cela enregistre les fichiers / parties que vous avez sélectionnés pour la validation. Cela pourrait ne jamais être explicitement mentionné, il pourrait être implémenté dans le client SVN plutôt que dans une partie réelle du référentiel, cela pourrait simplement être quelques indicateurs en mémoire, mais cest SVN ‘ s organiser. Je nai ‘ pas regardé HG, mais je soupçonne quil fait la même chose. La différence avec git est que git reconnaît que cest une chose, lenregistre sur le disque et laisse lutilisateur y accéder directement.
  • La deuxième flèche  » Les fichiers de scène  » dans la figure peuvent être trompeurs.  » stage hunks  » pourrait être plus précis?

Réponse

Puisque tout le monde a jusquici répondu de manière « formelle », permettez-moi de faire cela avec des alternatives pour améliorer lapprentissage avec la puissance des métaphores.

Donc, la zone de préparation est comme:

  • un cache de fichiers que vous voulez valider
  • pas une série de tubes mais en fait un camion à benne basculante, prêt à déplacer le travail avec lequel vous le chargez, dans le référentiel
  • un endroit magique où les fichiers sélectionnés seront transformés en pierre avec votre magie et peuvent être transportés comme par magie vers le référentiel à votre guise
  • la route de brique jaune pour que les fichiers aillent avec bonheur vers le référentiel (ou tombent si vous voulez revenir)
  • lendroit fictif au port maritime où les fichiers sont reçus une paire de chaussures en ciment puis jetés dans la mer du référentiel
  • le bureau des réceptions de la bibliothèque, vous y mettez les fichiers pour que le bibliothécaire se prépare à les classer dans la bibliothèque
  • une boîte dans laquelle vous mettez les choses avant de le mettre sous votre lit, où votre lit est un référentiel de boîtes que vous avez précédemment placées dans
  • la baie de chargement de fichiers avant d’entrer dans l’entrepôt de stockage avec le chargeur électrique
  • le filtre dune cafetière électrique, si les fichiers sont comme de la poudre de café, alors les fichiers validés sont le café infusé
  • le bureau de Scrooge McDuck à côté du coffre-fort, les fichiers sont comme les pièces avant quelles nentrent dans le coffre-fort de sa gigantesque corbeille dargent
  • lanimalerie, une fois que vous ramenez un animal domestique, vous êtes engagé

Cest id = « 5d1c58bd04 »>

magique !

Commentaires

  • Jadore les analogies ; chemin à parcourir bud ^ _ ^
  • Jadore lanalogie finale.
  • Cette réponse était  » DESPERATELY  » nécessaire parmi lespace des tentatives courantes pour expliquer la métaphysique de git index = git staging. Franchement, jaimerais ‘ savoir ce que pensait Linus quand il a décidé quil voulait une zone dindex. Je laime, mais je veux simplement mieux comprendre pourquoi il est ‘ de lavoir et comment lutiliser le plus efficacement possible.

Réponse

La mise en scène est une étape avant le processus de validation dans git. Autrement dit, un commit dans git est effectué en deux étapes: la mise en scène et la validation réelle.

Tant quun ensemble de modifications est dans la zone de mise en attente, git vous permet de le modifier comme vous le souhaitez (remplacez les fichiers par étapes par autres versions de fichiers intermédiaires, supprimer les modifications de la préparation, etc.).

Temps de métaphore cassé:

Imaginez un scénario où vous appelez les déménageurs pour récupérer vos affaires de votre ancien appartement à votre nouvel appartement. Avant de faire cela, vous passerez en revue vos affaires, déciderez de ce que vous emportez avec vous et de ce que vous jetez, mettez-les dans des sacs et laissez-les dans le couloir principal. Les déménageurs viennent simplement, récupèrent les sacs (déjà emballés) dans le couloir et les transportent. Dans cet exemple, tout est en cours jusquà ce que les déménageurs récupèrent vos affaires: vous décidez de ce qui va où, comment les emballer, etc. s part of staging).

Dun point de vue technique, le staging prend également en charge les commits transactionnels, en divisant toutes les opérations en ce qui peut échouer (staging) et ce qui ne peut pas échouer (commit):

Le commit dans git est implémenté de manière transactionnelle, une fois la staging réussie. Plusieurs étapes de la staging peuvent échouer (par exemple, vous devez valider, mais votre disque dur est plein à 99,9999%, et git na pas despace pour effectuer une validation). Cela échouera lors de la mise en scène (votre référentiel ne sera pas corrompu par une validation partielle) et le processus de mise en œuvre n’affecte pas votre historique de validation (il ne corrompra pas votre référentiel en cas d’erreur).

Commentaires

  • … et si peu de votes jusquà présent.

Réponse

Préparer un fichier, cest le préparer pour un commit. Parce que git expose cette action au contrôle des utilisateurs, il vous permet de créer des validations partielles, ou de modifier un fichier, de le mettre en scène, de le modifier à nouveau, et de ne valider ou revenir que sur la modification dorigine.

La mise en scène vous permet contrôle plus précis sur comment vous voulez aborder le contrôle de version.

Réponse

Pour ajouter aux autres excellentes réponses, voici doù vient le nom de « stage »:

Jai vérifié le dictionnaire pour la signification de létape et aucune des significations nétait liée aux concepts de contrôle de source.

En anglais, « mettre en scène » peut signifier

organiser et participer à (un événement public): supporters de lUDF a organisé une démonstration à Sofia

(from http://oxforddictionaries.com/definition/stage )

Le nom « staging » de la fonctionnalité git dérive de cette signification: lors de la mise en scène, vous préparez et organisez un commit.Bien sûr, un commit nest pas tout à fait la même chose quune performance, mais est un événement important dans un VCS :-).

Commentaires

  • Jai ‘ pensé quil correspondait mieux à lutilisation dans le post de préparation
  • Idem.  » un point, une période ou une étape dun processus ou dun développement.  »
  • Aussi ‘ serveur intermédiaire ‘ est un terme assez courant utilisé pour décrire un serveur qui ‘ se situe entre le développement et production.

Réponse

La « phase » est une étape intermédiaire techniquement requise dans le processus denregistrement dun fichier, à savoir collecter les modifications à ajouter au référentiel. Les auteurs de Git ont choisi de rendre cette étape visible et persistante là où les autres VCS en font une partie transitoire du processus de validation. Cest donc juste une option que git vous donne car elle le peut alors pourquoi pas?

La façon dont je le vois, la principale chose que git « stage » vous donne que les autres VCS ne font pas est que vous pouvez lutiliser pour vérifier un fichier. Cest en fait un commit local sans nom et sans commentaire qui vous donne une étape intermédiaire entre être terminé avec tout votre travail et le valider de manière permanente dans le référentiel et ne rien avoir enregistré dans votre dépôt local du tout.

Par exemple, disons que vous avez une fonctionnalité partiellement terminée. Elle est dans un état stable, passe tous les tests et pourrait entrer en production, mais vous avez encore du travail à faire. Vous pouvez mettre en scène toutes vos modifications et continuer à travailler sur la fonctionnalité.

Plus tard, vous aurez la possibilité de simplement valider ce que vous avez mis en scène (et pousser cette validation dans le référentiel distant) ou dajouter votre de nouvelles modifications dans votre zone de préparation, puis validez tout cela en une seule fois, ou pour annuler uniquement vos nouvelles modifications et rétablir votre répertoire de travail dans l’état dans lequel vous aviez effectué vos modifications.

Cest tout à fait possible pour pratiquement ignorer complètement la zone de préparation et utiliser simplement loption -a pour git commit si vous ne trouvez pas la zone de préparation comme un concept utile. Beaucoup de gens ignorent la mise en scène et les outils dinterface graphique le permettent également.

Commentaires

  •  » autre VCS don ‘ t  » – quest-ce qui vous fait penser? Le rayonnage chez Perforce semble faire ce que vous décrivez, et même avec quelques cloches et sifflets supplémentaires
  • @gnat oui, bien sûr de nombreux autres VCS vous offrent quelque chose comme la mise en scène. Par  » autre VCS  » je veux dire dautres VCS qui ne ‘ t ont quelque chose comme git Létape de ‘, puisque cest ce à quoi le PO faisait référence.
  • Jai trouvé cette réponse immensément meilleure que tout ce qui précède, car elle ‘ est le seul qui clarifie pourquoi le Staging existe (étant techniquement requis ), une explication de son origine ( Git ont choisi de rendre cette étape visible et persistante ), en ajoutant ce que je trouve personnellement être une bonne définition pour cela ( un commit local intermédiaire, sans nom et sans commentaire ) . Cependant, je pense quil pourrait être amélioré en citant une source pour la déclaration sur lorigine de la mise en scène, et en expliquant un peu plus pourquoi il ‘ est techniquement nécessaire . @OldPro
  • Si git avait été conçu à partir de zéro, cela aurait pu faire partie dune branche  »  » généralisée concept, local et invisible pour les autres dans ce cas. De même,  » stash  » aurait pu être implémenté (et compris!) Comme une instance spécifique du concept généralisé de  » branch.  » Vous pourriez alors avoir nimporte quel nombre de niveaux de  » staging  » vous préférez.

Réponse

Avec la plupart des autres systèmes de contrôle de version, il y a 2 endroits pour stocker des données: votre copie de travail (les dossiers / fichiers que vous utilisez actuellement) et le magasin de données (où le contrôle de version décide comment emballer et stocker vos modifications). Dans Git, il existe une troisième option: la zone de préparation (ou index). Il sagit essentiellement dun quai de chargement où vous pouvez déterminer les modifications qui seront expédiées.

source: http://gitready.com/beginner/2009/01/18/the-staging-area.html

Commentaires

  • cela ne ‘ t ne semble pas ajouter quoi que ce soit de substantiel par rapport aux 6 réponses précédentes
  • Il mentionne Index. Et des références à un article très complet. Vote positif. BTW, certaines réponses ci-dessus ne sont que des blagues.

Réponse

Je crois comprendre, supposons que je développe une fonctionnalité de connexion et que je nécessite 5 étapes consécutives pour terminer. Donc, ici, la mise en scène vous aidera à travailler sur des étapes telles que
faites avec létape 1.
faites avec létape 2, maintenant les étapes 1 et 2 sont toutes les deux correctes.
gâcher avec létape 3 non problème de vérification dernière étape par étapes qui est létape 2
de la même manière une fois que vous avez terminé les 5 étapes, ce qui signifie que la fonctionnalité est terminée, exécutez maintenant la validation.

Commentaires

  • cela ne ‘ t semble ajouter quoi que ce soit de substantiel par rapport aux points soulevés et expliqués précédemment 9 réponses
  • oui vous avez raison, jai juste essayé de rendre lexplication simple et douce
  • Et ce que jai envie dutiliser ce concept pratiquement, jai essayé de lexpliquer
  • envisagez de jeter un œil à la discussion ici: Les deuxièmes réponses TL; DR sont-elles acceptables? (FWIW par rapport aux réponses précédentes, celle-ci ne ‘ t semble simple ni gentil pour moi)
  • merci monsieur, jai une question à poser. Jai rencontré de nombreuses réponses et la plupart sont trop complexes. Oui, elles sont correctes mais difficiles à digérer à la fois, je crois que si vous pouvez ‘ expliquer quoi que ce soit de manière simple, alors vous je ne l’ai pas appris correctement ou je ne ‘ pas l’utiliser. Alors est-ce mal maintenant de mettre un résumé ou un moyen simple de répondre ??

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *