Question

Encore un moment difficile de ma tête enroulée autour de la notion de mise en scène telle qu'elle s'applique à Git.

Peut-analogies être faite avec SVN?Quel est le but principal d'avoir un niveau de la scène dans Git?

Était-ce utile?

La solution

Similitudes:

Les fichiers qui doivent faire partie du dépôt doit être ajouté afin d'être suivi.Les deux outils utiliser l' add commande pour accomplir cette tâche.L'ajout de fichiers pour la préparation d'un commit.

Différences:

Git permet quelques autres genre de détail lors de l'ajout de fichiers.Vous pouvez décider d'ajouter un fichier entier ou distincte de lignes de code.Ajout de fichiers à la index ou étape permet une plus grande flexibilité.SVN automatiquement valide toutes les modifications sur un fichier qui a déjà été ajouté au référentiel.Git vous laisse décider de ce que les changements à associer à chaque opération de validation de l'utilisateur.En d'autres termes:la prochaine s'engager dans Git ne contient que ces changements (lignes ou les fichiers) qui ont été mis en scène, quel que soit l'état du suivi des dossiers.SVN inclut automatiquement tous les changements sur les dossiers.

Informations supplémentaires:

Essayez de lire quelques posts décrivant Git flux de travail comme celui de Oliver Steele.Mais sachez qu'il y a pas un façon à l'utilisation de Git - il y a beaucoup de.Si vous le souhaitez, vous pouvez utiliser Git comme si vous travailliez avec SVN.
Ne vous attendez pas à comprendre la philosophie de Git dans un court laps de temps.Il m'a fallu un an pour entrer dans ce et j'ai encore à apprendre de nouvelles façons de l'utiliser.Je pense qu'il est encore plus difficile si vous avez grandi avec SVN état d'esprit.Il ya des tonnes de documents:des articles, des vidéos, ...- prenez votre temps et essayer certains d'entre eux.Voici une sélection à partir de la liste que j'ai recueillis.

Autres conseils

Le principal avantage de la zone de transit est que vous pouvez facilement commettre une partie seulement des modifications dans un fichier donné.(À l'aide de git add -p par exemple.) Autant que je sache, la seule façon de le faire "partielle" de s'engager dans le SVN est sur un fichier par niveau), ou manuellement la sauvegarde d'un fichier, puis de revenir temporairement les modifications que vous ne voulez pas commettre.

C'est super si (comme moi) vous n'êtes pas un très organisé, développeur et que vous voulez être en mesure de trier les changements en "pur" s'engage après le fait.Ce qui suit Git attitude générale à préférer pour vous donner plus de souplesse que l'application de la rigueur.Si vous n'en avez pas besoin, vous pouvez toujours ne pas l'utiliser, et l'utilisation git commit -a ....

Il n'y a pas d'analogies avec SVN car SVN n'est pas Git et ne dispose pas d'un tel concept.

Voici quelques-uns des scénarios qui montrent l'utilité de la mise en scène:

  • Vous travaillez sur une pièce particulière et avez apporté quelques changements à votre projet. Vous ne voulez pas les commettre encore avant de tester le tout. Mais ces changements peuvent souvent être suffisamment indépendants pour faire de multiples engagements logiques qu'un seul gros. C'est lorsque vous mettez en scène des pièces sélectives et effectuez plusieurs commits.

  • Stage a été particulièrement utile lors du débogage. Vous pouvez sauver autour des relevés de journaux pour suivre la source du bogue. Ensuite, vous faites le correctif et testez à nouveau à l'aide de ces déclarations de journal. Mais alors, vous voulez commettre le correctif avant de modifier le code pour supprimer ces relevés de journal.

  • Un autre scénario où il s'est avéré être utile, c'est lorsque vous êtes au milieu de quelque chose, et trouvez quelque chose de sans rapport, comme une erreur de frappe, que vous souhaitez résoudre et le sortir rapidement.

Il y a plusieurs autres scénarios de ce type et vous ne seriez probablement pas en mesure de travailler avec quoi que ce soit qui manque ce concept, une fois que vous avez un accroché:).

ps: je n'ai pas utilisé SVN du tout, alors ne pouvez pas faire les comparaisons entre les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top