web-dev-qa-db-fra.com

Pourquoi les gens forkent-ils des référentiels sur GitHub?

J'ai remarqué que beaucoup de comptes GitHub n'ont que des référentiels qui sont issus d'autres comptes. De plus, les personnes qui le font ne font généralement aucune contribution aux référentiels bifurqués.

J'ai entendu parler de gens qui collectionnent des timbres et des coquillages, mais pourquoi voudrait-on collecter des dépôts? Personnellement, je ne ferais que créer un dépôt si je voulais y apporter des modifications.

116
Aadit M Shah

Dans notre travail, nous avons tendance à rechercher des raisons techniques, mais à mon avis, la raison principale n'est pas technique. Si vous regardez Aide GitHub ou d'autres tutoriels GitHub, forking un repo est l'une des principales étapes de la façon dont vous "faites" GitHub.

Lorsque les gens apprennent et évaluent GitHub, à peu près tous les didacticiels vont leur dire de créer un dépôt dans le cadre de ce processus d'apprentissage. Étant donné que le but principal de GitHub est de contribuer, de nombreuses personnes travaillant à travers les didacticiels standard ne réalisent pas que si vous voulez juste un clone en lecture seule, vous n'avez pas besoin de faire un fork en premier.

70
Karl Bielefeldt

Comme vous l'avez mentionné dans votre question, les utilisateurs forkent les référentiels lorsqu'ils souhaitent modifier le code, car vous n'avez pas accès en écriture au référentiel d'origine (sauf si vous avez été ajouté en tant que collaborateur par le propriétaire du référentiel).

Dans le référentiel forké, ils ont un accès en écriture et peuvent pousser les modifications. Ils peuvent même contribuer en retour au référentiel d'origine en utilisant pull request.

Je pense qu'il y a plusieurs raisons pour lesquelles les gens forkent les référentiels, mais ne les changez pas:

  • ils peuvent bifurquer un dépôt qui a l'air cool, simplement le bifurquer (parce que c'est facile (un seul clic)) et vouloir faire un changement plus tard (et ensuite probablement l'oublier/n'a 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 peuvent bifurquer un référentiel car l'un des projets dépend d'un autre référentiel (peut-être via des sous-modules) et ils veulent 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 au code google, etc. )
  • ils pourraient simplement oublier de pousser les commits
101
MarcDefiant

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

28

Le point entier de Github est "codage social" .

Personnellement, je bifurque les référentiels lorsque:

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

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

Pourquoi pas?

Il n'y a rien (auquel je puisse penser) qui puisse mal tourner en forgeant des référentiels pour le plaisir personnel. Honnêtement, je garde un dossier de projets intéressants que je vois sur Github et d'autres endroits simplement à des fins 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 peux en fait vouloir le modifier à l'avenir.

Maintenant, commencez à bifurquer.

26
Dynamic

Je bifurque beaucoup de dépôts que je pourrais vouloir 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 trouver s'il est répertorié sous mon référentiels. Je n'ai pas besoin de chercher sur Google, ni de me trémousser pour essayer de me souvenir du nom exact ou de penser "où ai-je revu ce repo sur foo?" Si cela fait partie de mes dépôts, il est plus facile de se souvenir de ces choses.

1
ChrisDR