Pourquoi tout le monde utilise-t-il git de manière centralisée?
Nous ne nous sommes jamais rencontrés, comment se fait-il que vous disiez tout le monde? ;)
Deuxièmement, vous trouverez d'autres fonctionnalités dans Git, mais pas dans CVS ou SVN. Peut-être que c'est juste en supposant que cela doit être la seule fonctionnalité pour tout le monde .
Bien sûr, beaucoup de gens peuvent l’utiliser de manière centralisée, comme CVS ou SVN. Mais n’oubliez pas l’autre fonctionnalité inhérente à un VCS distribué: toutes les copies sont plus ou moins "complètes" (toutes les branches et l’historique complet sont disponibles) et toutes les branches peuvent être extraites sans connexion à un serveur.
Je suis d’avis que c’est une autre caractéristique à ne pas oublier.
Bien que vous ne puissiez pas faire cela avec les systèmes CVS et SVN prêts à l'emploi, Git peut être utilisé de manière centralisée comme les anciens sans aucun problème.
Je suis donc en mesure de valider mes modifications. Peut-être que les travaux en cours de squash sont validés ensemble, puis de récupérer et de baser mon travail sur la branche de développement principale.
Autres fonctionnalités qui sortent de la boîte avec Git:
- signer de façon cryptographique
- rebasement (réordonne et squash les commits; édite les commits, pas seulement le message)
- la cueillette des cerises
- bissecter l'histoire
- branches locales et changements cachés (appelés "shelving" dans Wikipedia)
Voir également ces trois tableaux dans Wikipedia - Comparaison du logiciel de contrôle de version :
Encore une fois, peut-être que la manière décentralisée n'est pas la seule caractéristique qui incite les gens à l'utiliser.
- Pourquoi les gens n'utilisent-ils pas un workflow distribué pour Git?
Quiconque contribue ou héberge un projet plus important sur Bitbucked, GitHub, etc. le fera de manière exacte. Les mainteneurs conservent le référentiel "principal", un clone contributeur, des validations, puis une requête d'extraction.
Dans les entreprises, même avec de petits projets ou équipes, un flux de travail distribué est une option lorsqu'elles externalisent des modules et ne veulent pas que les externes modifient la ou les branches de développement sacrées sans que leurs modifications aient été examinées auparavant.
- La capacité fonctionne-t-elle de manière distribuée même importante pour le contrôle de version moderne, ...
Comme toujours: cela dépend des besoins.
Utilisez un VCS décentralisé si un point s'applique:
- vouloir s'engager ou naviguer dans l'historique hors ligne (c'est-à-dire terminer le sous-module dans la cabine de montagne pendant les vacances)
- fournir des repos centraux mais vouloir garder "le vrai" référentiel séparé pour examiner les modifications (par exemple pour les grands projets ou les équipes distribuées)
- vouloir fournir (une copie de) l'historique complet et les branches de temps en temps tout en empêchant un accès direct au référentiel central (similaire au second)
- Vouloir mettre à jour quelque chose sans avoir à le stocker à distance ou à mettre en place un référentiel dédié (surtout avec Git,
git init .
cela suffit pour être prêt à mettre quelque chose en version)
Il y en a d'autres mais quatre devraient suffire.
... ou est-ce que ça sonne bien?
Bien sûr, ça sonne bien - pour les débutants.