Pourquoi les gens bifurquent-ils des référentiels sur GitHub? [fermé]

110

J'ai remarqué que beaucoup de comptes GitHub n'ont que des référentiels qui sont fournis à partir d'autres comptes. De plus, les personnes qui font cela ne font généralement aucune contribution aux référentiels fourchus.

J'ai entendu parler de gens qui collectionnent des timbres et des coquillages, mais pourquoi voudrait-on collectionner des dépôts? Personnellement, je ne bifurquerais un référentiel que si je voulais y apporter des modifications.

Aadit M Shah
la source
84
ils veulent s'assurer qu'ils ont une sauvegarde stable si le propriétaire du projet supprime son dépôt et disparaît
Ratchet Freak
9
Tout simplement parce que c'est la façon dont les demandes de traction fonctionnent dans GitHub (et parce que les gens sont un peu fourchue heureux et oublier parfois, ou d' abandonner leur idée de projet et d' oublier de se débarrasser de la fourche)
haylem
2
si ce n'est un commentaire, si je comprends bien, ils utilisent comme une "sauvegarde" du code, mais ils oublient (ou ne savent pas) que la mise à jour du référentiel n'affecte pas les "forks", alors qu'ils devraient le faire correctement (pour la sauvegarde) et "Star" dans le référentiel pour savoir quand faire un "re-fork", autrement dit, ils pensent que "fork" est presque la même chose que "Star" et inconscient conserve un code obsolète.
Guilherme Nascimento
1
Parce qu'ils ont entendu dire qu'avoir un Github est suffisant pour être embauché à un démarrage à chaud.
Gaius
1
Voici le post à propos de mal de forger sans raison zbowling.github.io/blog/2011/11/25/github
gavenkoa

Réponses:

69

Dans notre travail, nous avons tendance à rechercher des raisons techniques, mais à mon avis, la raison principale n’est pas technique. Si vous consultez l’ aide de GitHub ou d’autres didacticiels GitHub, la création d’un référentiel est l’une des étapes majeures de la procédure de création de GitHub.

Lorsque les gens apprennent et évaluent GitHub, à peu près tous les didacticiels leur diront de débiter un rapport dans le cadre de ce processus d'apprentissage. Puisque l'objectif principal de GitHub est de contribuer, beaucoup de personnes qui suivent les tutoriels standard ne se rendent pas compte que si vous voulez juste un clone en lecture seule, vous n'avez pas à faire de fork.

Karl Bielefeldt
la source
42
Pour des raisons non techniques: j'ai cliqué à plusieurs reprises sur le bouton «fork» dans l'espoir de voir qui a archivé le repo, seulement pour constater que je l'ai acheminé. Ooops! Je ne sais pas si les autres ont fait de même.
Gdw2
53
@gdw: Vous obliger à s'exclamer: "Oh, fourchette!"
Ben Jackson
1
Je me souviens que lorsque j’ai appris la première fois sur git et Github, j’ai fait des fouilles uniquement parce que des guides et des tutoriels semblaient le proposer comme le moyen d’obtenir votre propre copie du code sur votre ordinateur.
Rmac
Nous utilisons GitLab au travail, alors je connais bien la différence entre clone et fork. Je suis également d'avis qu'il n'est pas nécessaire de créer un fork si vous ne voulez pas émettre de demande d'extraction (fusion pour GitLab).
cst1992
3
@ Jess, c'est bien, mais généralement inutile dans ce cas. Une entreprise peut le faire pour le code dont elle dépend pour s’assurer que l’original ne disparaît pas soudainement. Si tout ce que vous voulez faire est de construire à partir des sources, un clone est plus simple.
Karl Bielefeldt
101

Comme vous l'avez mentionné dans votre question, les utilisateurs divisent les référentiels lorsqu'ils souhaitent modifier le code, car vous n'avez pas d'accès en écriture au référentiel d'origine (à moins que le propriétaire du référentiel ne vous ait ajouté comme collaborateur).

Dans le référentiel forké, ils ont un accès en écriture et peuvent appliquer des modifications. Ils peuvent même contribuer au référentiel d'origine à l'aide de demandes d'extraction .

Je pense qu'il y a plusieurs raisons pour lesquelles les gens bifurquent des dépôts mais ne les modifient pas:

  • ils peuvent créer un référentiel qui a l'air cool, il suffit simplement de le créer (car c'est facile (un seul clic)) et de vouloir apporter une modification plus tard (puis l'oublier probablement / je n'ai pas eu le temps de le faire)
  • ils bifurquent un référentiel pour effectuer un changement, puis découvrent que le changement est inutile et oublient de supprimer le propre référentiel
  • ils risquent de créer un référentiel car l'un des projets dépend d'un autre référentiel (éventuellement via des sous-modules) et souhaitent avoir un contrôle total sur le référentiel utilisé comme dépendance (les propriétaires du référentiel d'origine peuvent décider de passer de github à google code, etc.). )
  • ils pourraient simplement oublier de pousser les commits
MarcDefiant
la source
5
Lorsque vous n'utilisez pas Github, vous suivez la voie de la vieille école et créez une copie clonée locale du projet afin que vous puissiez le modifier. Le forking sur github vous donne accès aux demandes d'extraction préférées par de nombreux projets. Si vous êtes sur un autre projet, vous allez créer des correctifs et les envoyer pour révision.
Rudolf Olah
Il s'agit d'un processus simple en une étape pour configurer une branche de suivi à distance. Quiconque a essayé de contribuer à un référentiel git en dehors de GitHub sait à quel point cela peut être fastidieux. De plus, si l'auteur d'origine utilise AFK, vous pouvez suivre le graphe de développement pour rechercher des fourchettes encore activement développées. Espérons que cela empêchera GitHub de dégénérer en une friche de projets morts de la même manière que SourceForge.
Evan Plaice
Que se passe-t-il si vous créez un projet sans apporter de modifications? Est-ce que cela serait considéré comme illégal?
Jesse
@ Jesse Tous les dépôts publics sur GitHub devraient avoir une licence Open Source (c'est leurs conditions de service) et par conséquent, ce n'est pas un problème du tout. Surtout quand vous ne faites aucun changement.
MarcDefiant
28

Une raison possible: leur code en cours d'exécution dépend de ces projets et leur processus de construction implique d'extraire les dépendances de github. Avoir la fourche les protège contre les changements brusques. Pour les projets qui ne taguent pas les versions, c'est le moyen le plus simple d'y parvenir.

Michael Borgwardt
la source
3
Ils peuvent corriger le numéro ou la version publiée de la version finale d'une application.
Roman M. Koss
26

Tout l'intérêt de Github est le "codage social" .

Personnellement, je fourche des référentiels lorsque:

  • Je veux faire un changement.
  • Je pense que le projet est intéressant et que vous voudrez peut-être l'utiliser à l'avenir, mais vous n'avez pas de moyen plus simple de le sauvegarder pour plus tard sur le périphérique que j'utilise actuellement.
  • Je souhaite utiliser tout ou partie du code de ce référentiel comme point de départ de mon propre projet.

Maintenant, j'ai entendu parler de gens qui collectionnent des timbres et des coquillages, mais pourquoi voudrait-on collectionner des dépôts?

Pourquoi pas?

Il n'y a rien (que je puisse penser) qui puisse mal se passer de créer des dépôts pour le plaisir personnel. Honnêtement, je garde un dossier de projets intéressants que je vois sur Github et d’autres endroits simplement pour des raisons d’inspiration, et en partie parce que je suis un geek. Je comprends que je n’ai pas besoin de bifurquer le projet pour lire le code, mais je souhaiterais peut-être le modifier ultérieurement.

Maintenant, commencez à fourrer.

Dynamique
la source
9
+1 pour le "Pourquoi pas?" section.
Llepwryd
Mes 2 cents supplémentaires sur le "Pourquoi pas?" section: Mon habitude est de toujours faire "git push" après avoir fini de travailler sur une fonctionnalité; il a ce sentiment QED satisfaisant pour moi (que je ne reçois pas lorsque j'écris le nom de la télécommande et de la branche). Ainsi, chaque fois qu'il y a une moindre chance que je veuille apporter des modifications au référentiel, je préférerais le modifier, au lieu de devoir modifier ultérieurement le référentiel "origine" par défaut.
YoniLavi
1
Je pense que le "pourquoi pas?" La section décrit le fonctionnement de "Star" ...
TWiStErRob
2
Pourquoi ne pas simplement lui donner une étoile pour l'enregistrer pour une visualisation ultérieure?
Mec
2
Quand un projet est intéressant, j'utilise une étoile. Je suis d'accord avec le reste.
Roman M. Koss
1

J'utilise beaucoup de pensions pour lesquelles je pourrais utiliser le code, ou si c'est un projet qui m'intéresse. Quand je veux revenir et revoir le code plus tard, il est plus facile de le trouver s'il est répertorié sous mon les dépôts. Je n'ai pas besoin de google ou de bourdonner pour essayer de me rappeler le nom exact ou de me demander "où est-ce que j'ai déjà vu ce dépôt à propos de foo?" Si cela fait partie de mes dépôts, il est plus facile de se souvenir de ces choses.

ChrisDR
la source
Notez que vous pouvez obtenir le même résultat en mettant en vedette le rapport - pas besoin de fourchette pour cela.
Valiano