8
votes

Les branches git sont-elles juste des balises?

J'ai remarqué la capacité de GIT de vérifier à un commit spécifique. Après cela, j'ai commencé à comprendre à quel point cela fonctionne vraiment.

Mais je veux être sûr que cela est correct: Lorsque je crée une succursale, ce n'est rien de plus qu'une balise qui pointe vers la commission actuelle. Quand je cumèle cette branche, je cumèle le commit de cette "balise" pointe vers. Maintenant, quand je commémorerai quelque chose, un nouveau commit est créé. L'étiquette de branche de vérification actuelle est maintenant mise à jour, de sorte qu'elle pointe vers le nouveau commit.

Alors ... En fait, je pourrais faire tout cela manuellement, non? C'est une fonctionnalité pour faciliter les choses.

git

0 commentaires

3 Réponses :


4
votes

Branche est un pointeur de référence, il pointe de commettre actuellement comme vous le dites.

Mais vous ne devriez pas utiliser ces mots interchangeables parce qu'ils signifient autre chose.


0 commentaires

7
votes

Oui, c'est un bon modèle pour quelle branche est. Méfiez-vous, cependant, à propos de la terminologie - GIT a également un concept de balises, mais des balises ne bougent pas - elles pointent pour toujours vers le même commit.


mise à jour: ajouter un peu plus de détails, ce qui pourrait Soyez intéressant ...

Votre branche actuelle est stockée dans le fichier tête , qui pointe vers une branche, auquel cas le contenu ressemble: < / p> xxx

... ou indique directement à un commit, auquel cas le contenu ressemblera à: xxx

in L'ancien cas, la branche maître est avancé lorsque vous créez un nouveau commit, mais dans cette dernière situation (connue sous le nom de "tête détachée" pour des raisons évidentes espérons), aucune succursale ne sera modifiée lorsque vous créez un Nouveau commit.


0 commentaires

3
votes

Oui, pour GIT, une succursale est essentiellement une référence à un commit qui est automatiquement mis à jour lorsque vous vous engagez. Vous pouvez le suivre vous-même, comme vous l'avez noté.

En fait, GIT expose tous les blocs de bas niveau sur lesquels plus d'abstraction de niveau plus élevé sont construits. Vous pouvez si vous voulez utiliser une commande comme git hash-objet , git mk-arbores et git commit-arborescence pour faire manuellement ce que git Ajouter et GIT COMMIT Si vous voulez (voir le RAW Git chapitre dans le livre Git pour savoir comment faire en détail).

Veuillez également noter que GIT a deux types d'étiquettes. Les étiquettes légères sont simplement en référence à commenter (via son hachage) qui ne bouge pas automatiquement. Il y a aussi la notion de qui sont des objets de vrais git, archivés comme commetter, et qui peut contenir un message et une signature.


0 commentaires