web-dev-qa-db-fra.com

Qu'est-ce qu'une branche de sujet git?

Qu'est-ce qu'une branche de sujet git? Est-ce que cela diffère d'une branche ordinaire d'une certaine manière? Y a-t-il des branches qui ne sont pas des branches thématiques?

126
skiphoppy

Les branches de rubrique sont généralement des branches légères que vous créez localement et qui ont un nom significatif pour vous . C'est là que vous pourriez travailler pour un correctif de bogue ou une fonctionnalité (ils sont également appelés branches de fonctionnalité) qui devraient prendre un certain temps.

Un autre type de branche est la "branche distante" ou "branche de suivi à distance". Ce type de branche suit le développement du travail de quelqu'un d'autre et est stocké dans votre propre référentiel. Vous mettez régulièrement à jour cette branche (en utilisant git fetch) pour suivre ce qui se passe ailleurs. Lorsque vous êtes prêt à rattraper les changements de tout le monde, vous utiliserez git pull pour extraire et fusionner.

J'ai également vu un autre type de branche qui est essentiellement une arborescence de fichiers complètement séparée dans le même référentiel. Par exemple, le référentiel Git lui-même contient des têtes nommées man et html qui contiennent un contenu entièrement différent de la branche master . Je ne sais pas comment ces types de branches sont généralement appelés.

104
Greg Hewgill

Ce n'est pas un terme technique; il fait simplement référence à une branche qui a été créée pour implémenter une fonctionnalité spécifique ou corriger un bogue. Le "sujet" est essentiellement la raison de la création de la branche.

76
mipadi

https://github.com/dchelimsky/rspec/wiki/Topic-Branches explique bien cela:

Une branche "sujet" est une branche distincte que vous utilisez lorsque vous travaillez sur un seul "sujet" (une correction de bogue, une nouvelle fonctionnalité ou une idée expérimentale). Il est recommandé de travailler sur une branche de sujet plutôt que directement sur "maître" car:

{... visitez le lien ...}

Donc, pour toutes ces raisons, il est recommandé d'utiliser une branche de rubrique pour préparer des soumissions, même pour des contributions simples comme des corrections de bugs à validation unique et autres.

Cet exemple donne également des exemples. Ce qui m'a fait penser, c'est probablement ce que la plupart des magasins font déjà. Tous les projets agiles avec lesquels j'ai jamais travaillé font. J'ai voté pour "Ce n'est pas un terme technique" parce que je sens que cela frappe le clou sur la tête.

26
Jeff Ancel

il semble que le type de branche le plus important et le plus important qui ne soit pas une branche de sujet soit la publication de branches sur un référentiel majeur accessible au public, n'est-ce pas?

C'est probablement bon pour vous, mais c'est à propos de vous et du projet auquel vous pensez; ce n'est pas déterminé par Git.

La plupart des systèmes de contrôle de version (en particulier les systèmes centralisés) prescrivent ou appliquent un flux de travail particulier, y compris pour quoi il est logique d'utiliser une branche. Git (et dans une certaine mesure la plupart des VCS distribués) considère que le flux de travail, les branches utilisées, le moment de la validation, les différents dépôts utilisés, etc. sont tous choisis par les utilisateurs et les accords entre les utilisateurs (politiques). Git ne les applique donc pas techniquement.

C'est l'une des choses qui ont rendu Git difficile pour moi d'apprendre. Oliver Steele a expliqué cela du point de vue de l'utilisateur, en écrivant sur Commit Policies .

4
Paul