web-dev-qa-db-fra.com

Pourquoi "Fork me on GitHub"?

Je comprends comment GitHub fonctionne, mais je suis confus, mais pourquoi presque chaque OSS projet a récemment un " Fork me sur GitHub "lien sur leur page d'accueil. Par exemple,

http://jqtjs.com/ , http://www.daviddurman.com/flexi-color-picker/ , et autres.

Pourquoi est-ce si courant? Est-ce qu'ils veulent/ont besoin d'une validation de code, vérifiant les améliorations de sécurité/performances qu'ils ne savent pas comment faire?

Est-il censé montrer qu'il s'agit d'un projet collaboratif - vous êtes invités à ajouter des améliorations?

Travaillent-ils pour GitHub ou souhaitent-ils promouvoir leur service? Curieusement, je ne pense pas avoir vu récemment un logo "Projet Fork sur Bitbucket ".

Ma première réaction à ce logo a été que le projet doit probablement être modifié (forké) afin de l'intégrer à quelque chose d'utile - ou qu'ils encouragent une base de code fragmentée, encourageant tout le monde à créer sa propre fourchette du projet. Mais je ne pense pas que ce soit l'intention.

50
NoBugs

Mis à part le côté favorisant la collaboration du problème, d'un point de vue commercial, il améliorera et renforcera le trafic, la base d'utilisateurs et la position sur le marché de GitHub. Il y a donc aussi une petite stratégie commerciale qui y est associée.

Personnellement, cela ne me dérange pas parce que GitHub fournit un service précieux à la communauté open source.

20
AsymLabs

Est-il censé montrer qu'il s'agit d'un projet collaboratif - vous êtes invités à ajouter des améliorations?

Oui: vous n'avez pas le droit de pousser un commit directement à leur repo.
Mais vous avez la possibilité de fork leur repo , ce qui en fait votre repo, et Push commit à partir de là, préparer tirer les demandes .

fork

75
VonC

Le badge "Fork me on Github" est destiné à montrer que c'est le projet que vous avez le droit de contribuer au projet ou de l'utiliser comme point de départ pour votre propre projet.

Cela montre un peu que "c'est un projet collaboratif et que vous êtes invités à ajouter des améliorations."

Il vous permet de jouer avec le code ou de créer un spin-off du même projet sans affecter la source d'origine.

https://help.github.com/articles/fork-a-repo

Le même principe s'applique à tous les autres hôtes git.

Les principaux points (parmi bien d'autres) de donner le droit de créer un projet sont de

  • favoriser la collaboration - en permettant aux gens de travailler ensemble pour améliorer le projet.
  • enrichir les connaissances - en permettant aux gens d'étudier votre code.

Certains des projets que vous pourriez rencontrer peuvent être réalisés par le personnel de Github pour leurs propres besoins privés. Ils ne veulent pas promouvoir github. Vous pouvez trouver des projets par github ici: https://github.com/github

La raison pour laquelle vous ne voyez pas de badges d'autres hôtes est que Github est la plateforme d'hébergement et de collaboration git la plus populaire.

37
Brian Kinyua

Imaginez que vous utilisez votre éditeur de texte préféré, et après un certain temps, vous constaterez que vous aimeriez vraiment qu'une fonctionnalité soit implémentée (comme l'option Enregistrer le fichier sans blocage).

Après avoir pensé que pour la onzième fois, vous décidez d'en écrire un par vous-même. Après avoir trouvé la page github de ce projet, vous avez deux options:

  1. Téléchargez le code source, modifiez-le et conservez-le pour vous.
  2. Forkez le projet sur un github et travaillez sur votre fork.

Si vous avez choisi la deuxième option, après avoir rendu votre fonctionnalité bien écrite et bien testée, vous pouvez préparer une demande de tirage et l'ensemble du projet bénéficiera de vous.

Cependant, si vous avez choisi le premier chemin, il est très probable que vous oublierez simplement votre modification et personne sauf vous en bénéficiera (oui, vous pouvez partager le code manuellement, mais un autre codeur pourrait facilement oublier cela. Utiliser github vous oblige à devenir plus socialisé avec le travail de l'autre).

Dire "Fork me on a github" le propriétaire du projet veut juste s'assurer que vous avez choisi le Fork on github au lieu de télécharger le code et de le publier dans votre répertoire personnel.

15
Nemanja Boric

Il n'est là que pour montrer qu'il s'agit d'un projet open source et vous le créez si vous le souhaitez, quelle qu'en soit la raison. Consultez également cet article de blog sur GitHub: https://github.com/blog/273-github-ribbons

Mise à jour: Personnellement, j'ajoute ces rubans GitHub pour que les gens puissent me trouver sur GitHub et lancer mes projets;)

7
dmitry

Cela signifie qu'ils sont sur github, où le forking est bon marché, et ils veulent encourager les contributions pour améliorer leurs logiciels et leur communauté.

6
Florian Margaine

Github essaie d'élargir sa base d'utilisateurs pour inclure tout travail collaboratif, pas seulement l'hébergement de code source; et ainsi poussent-ils la méthode fork et send a pull request. Faire des correctifs et les envoyer par e-mail ne serait pas attrayant pour la plupart des gens autres que les programmeurs et autres. Les autorisations push ne sont pas vraiment importantes ici, car finalement la plupart des utilisateurs de git (ou Mercurial, darcs, ou autre) ayant une connaissance considérable de l'outil et du flux de travail de développement pourraient envoyer un e-mail avec un correctif attaché d'une manière ou d'une autre.

En outre, Github concerne davantage les réseaux sociaux que l'hébergement de code: votre profil, vos dépôts et vos modifications constituent votre identité en tant que développeur de logiciels, tout comme vos tweets et vos +1. Tous ces rubans et boutons et autres sont utilisés comme un moyen d'auto-prospection, un chemin vers le profil de la personne à laquelle appartient le projet. De nos jours, avoir un profil Github décent est la première chose attendue d'un développeur. Même si j'utilise Mercurial pour n'importe quoi, je pousse vers Github via hg-git pour ces raisons.

Finalement, ce ruban "Fork me on Github" diffère légèrement dans son objectif du bouton "Tweet this Article" ou du bouton "Share this Thing on G +". (Avoir également un fork d'un référentiel sur votre liste de référentiels signifie "Je suis un utilisateur de cette chose", il y a des milliers de fourches de Linux sur github, même si Linus Torvalds n'accepte pas les pull pulls.)

5
user67429

c'est une autre façon de dire "les patchs sont les bienvenus".

au lieu d'envoyer des souhaits et des demandes de fonctionnalités, les utilisateurs peuvent envoyer une demande d'extraction où l'auteur d'origine examine, valide et fusionne la demande d'extraction.

historiquement, le forking est une action hostile effectuée par un groupe en conflit avec la gestion du projet d'origine, par exemple OpenOffice de Sun utilisé pour rejeter le plugin SVG C/C++ rapide car il préfère son propre plugin basé sur Java à rupture lente pour des raisons politiques.

Dans la plupart des cas, les fourches sont mauvaises et portées par des personnes qui envient ou des sociétés égoïstes qui ont des plans qui ne sont pas partagés avec la communauté d'origine et ne sont pas alignés avec elle (ex. Canonical ) et un exemple de ceci est libav/avconv (qui est un fork de FFMPEG), dans ces cas, la communauté d'origine a qualité supérieure, sécurité , et elle accueille les correctifs alignés sur les plans de la communauté.

Dan Walsh a noté l'ancienne définition de fork

Je suis dans l'open source depuis longtemps, et ma définition d'un "fork" pourrait être datée. Je pense à un "fork" comme une action hostile prise par un groupe pour amener les autres à utiliser et à contribuer à leur version d'un projet en amont et à ignorer la version "originale". Par exemple, LibreOffice bifurquant d'OpenOffice ou remontant à Xorg bifurquant de Xfree86.

Puis il a comparé cela avec la fourchette de github

De nos jours, GitHub a changé le sens. Lorsqu'un référentiel de logiciels existe sur GitHub ou une plate-forme similaire, tous ceux qui souhaitent contribuer doivent appuyer sur le bouton "fork" et commencer à créer leurs correctifs. Au moment de la rédaction de ce document, Docker sur GitHub possède 9 860 fourches, y compris la nôtre. Par cette définition, cependant, tous les packages livrés avec des correctifs sont des fourchettes. Red Hat expédie le noyau Linux, et je n'ai pas entendu parler de fork. Mais ce serait considéré comme une "fourchette" si vous envisagez un projet en amont livré avec des correctifs une fourchette.

2
Muayyad Alsadi

Toutes les réponses disant que c'est collaboratif posent la question: pourquoi ne pas dire "Clone moi sur GitHib" ou "Télécharger .Zip depuis GitHub"?

Sur GitHub, vous pouvez voir le nombre de fourches. Mais, à ma connaissance, pas le nombre de clones ou de téléchargements Zip.

Donc, je dirais que c'est en partie pour encourager la collaboration, en partie pour obtenir des commentaires et une validation que les gens utilisent votre code.

P.S. Je suis assez nouveau sur GitHub, donc si c'est totalement faux en dehors de la base, veuillez me le faire savoir.

1
user949300

bifurquer sur github le rend très facile à dire comme suivez-moi sur Twitter. J'apporte un peu de socialisation dans le monde du développement à partir de ma propre perspective, ce qui rend également évident qu'il est open source et disponible pour des modifications. Je pense aussi que c'est un concept agréable avec la bannière "fork me on github" à une extrémité de votre site web du projet

0
Joseph Rex

Il vaut probablement mieux prendre la réponse la plus simple: ils veulent que vous sachiez que le code est disponible gratuitement sur GitHub. Je pense que vos hypothèses sont un peu exagérées.

0
ashgromnies