web-dev-qa-db-fra.com

Que signifient ces mots dans Git: référentiel, branche, branche, clone, piste?

Honnêtement, je ne suis pas clair sur la sémantique ici. Ils concernent tous les copies/variantes d'une unité code + historique, mais je ne suis pas sûr de pouvoir le dire. Cette structure logique est-elle expliquée quelque part?

129
Eric Anderson

Un référentiel est simplement un endroit où l'historique de votre travail est stocké. Il vit souvent dans un .git _ sous-répertoire de votre copie de travail - copie de l’état le plus récent des fichiers sur lesquels vous travaillez.

Pour créer un projet (prendre le code source d'un référentiel à un moment donné et y appliquer vos propres modifications), vous devez cloner le référentiel distant pour en créer une copie, puis effectuer votre propre travail dans votre référentiel local. commettre des modifications.

Dans un référentiel, vous avez des branches, qui sont en réalité des fourches au sein de votre propre référentiel. Vos branches auront un commit ancêtre dans votre référentiel et divergent de ce commit avec vos modifications. Vous pouvez fusionner ultérieurement vos modifications de branche. Les branches vous permettent de travailler sur plusieurs fonctionnalités disparates à la fois.

Vous pouvez également suivre des branches individuelles dans des référentiels distants. Cela vous permet d'extraire les modifications des branches d'une autre personne et de les fusionner en une branche de votre choix. Cela peut être utile si vous et un ami travaillez ensemble sur une nouvelle fonctionnalité.

Il y a beaucoup d'excellents livres Git en ligne. Regardez ProGit et Git Magic pour commencer, ainsi que les tutoriels officiels et le livre de la communauté.

146
nfm

Je vais répondre à ma propre question avec un RTFM.

Mais, lisez this beau manuel. Comme le dit l'auteur:

"La conclusion que j'en tire est que vous ne pouvez vraiment utiliser Git que si vous comprenez son fonctionnement. Mémoriser simplement les commandes à exécuter à des moments précis qui fonctionnent à court terme, mais ce n’est qu’une question de temps avant de rester bloqué ou, pire, de casser quelque chose.

"Malheureusement, la moitié des ressources existantes sur Git n’adopte que cette approche: elles vous indiquent les commandes à exécuter quand et s’attendent à ce que vous fassiez bien si vous les imitez. L'autre moitié reprend tous les concepts, mais d'après ce que j'ai vu, ils expliquent Git d'une manière qui suppose que vous comprenez déjà comment fonctionne Git. "

13
Eric Anderson

This GoogleTechTalk est une fantastique introduction à Git pour apprendre ce qui se passe réellement dans les coulisses, tout en apprenant la langue. Il a été donné par un très ancien contributeur de Git et il a donné cette conférence en 2007 en tant que moyen d’introduction dans Git. Si vous regardez cette présentation, vous saurez non seulement ce qu'est chaque mot, comme référentiel, branche, branche, etc., mais vous saurez également ce qui se passe dans les coulisses lorsque chacun de ces mots est créé, fusionné, etc.

L'adresse est longue mais très informative. Cela contraste également entre Git et les autres systèmes de contrôle de version, ce qui vous permet de comprendre pourquoi Git a été créé tel quel et quels en sont les avantages comparatifs par rapport aux autres systèmes de contrôle. Même si le discours est ancien, il est très utile de se mettre au travail. Je regarderais cela avant de sauter dans les manuels. En conséquence, les choses auront beaucoup plus de sens, je crois.

3
Matt