Pourquoi “Fork me on GitHub”? [fermé]

50

Je comprends le fonctionnement de GitHub , mais je ne sais pas trop pourquoi presque tous les projets OSS ont récemment un lien "Fork me on GitHub" sur leur page d'accueil. Par exemple,

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

Pourquoi est-ce si commun? 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 peut-être pas comment faire?

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

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

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 chacun à créer son propre fork. Mais je ne pense pas que ce soit l'intention.

NoBugs
la source
23
Parce qu'il est plus facile que d'écrire "si vous souhaitez contribuer à ce projet ou consulter le code source, consultez notre référentiel sur github". ;-)
nietonfir
1
Je suis un peu surpris que personne n'ait mentionné le ... Qu'est-ce que c'est, un jeu de mots? Insinuation? Mais cette formulation particulière ne fonctionnerait pas avec bitbucket; leur site dégage une impression d'être plus professionnel que github. Parce que c'est comme ça que j'ai compris votre question en première lecture - "pourquoi est-ce que bitbucket ne les a pas?"
Izkata
2
Ce sont des widgets sociaux , semblables à ceux qui apparaissent avec le lien "partager" sur une question / réponse SE: vous obtenez des widgets pour Google+, Facebook et Twitter. Ils sont prêts à être utilisés par les concepteurs de sites, donc faciles à intégrer. Je pense qu’il n’existe pas de telles choses, par exemple pour Bitbucket, il n’ya donc rien à remarquer: si un projet possède son propre widget «À moi, brassé», il ne ressemblera vraisemblablement à aucun autre.
Luc Danton
Je vote pour clore cette question hors sujet, car il s'agit de la culture du logiciel open source. Actuellement, des questions sur la manière dont les communautés collaborent pour produire, distribuer, commercialiser et parfois monétiser des projets open source sont abordées dans Open Source Stack Exchange .
Thomas Owens

Réponses:

20

Outre le volet «collaboration favorisée» 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 un peu de stratégie commerciale associée à cela.

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

AsymLabs
la source
23
Pourquoi votre réponse du point de vue de GitHub? Les gens ne mettent pas ce logo sur leurs sites pour renforcer le trafic, la base d'utilisateurs et la position sur le marché de GitHub. Cela pourrait être un effet secondaire, mais ce n'est pas le but . Comment est-ce une "stratégie commerciale" de GitHub? GitHub n'est même pas responsable de la mise en place de ce logo sur les sites de logiciels libres (les responsables de la maintenance des sites sont libres).
Ben Lee
3
@Ben Lee Votre commentaire est bien pris. Mais je voudrais affirmer qu'il n'y a pas un seul but, mais plusieurs . Je n'ai pas écarté l'idée selon laquelle l'objectif est de favoriser la collaboration, mais simplement que nous devons également reconnaître que GitHub est également une entreprise (on pourrait affirmer qu'ils sont le leader du marché dans ce secteur) et qu'un autre objectif de Fork Me on GitHub est un avantage stratégique. Certes, c'est volontaire, mais c'est quand même efficace. Cela rend GitHub plus visible sur Internet, un élément clé de toute stratégie commerciale Internet.
AsymLabs
2
@BenLee Comme l'a noté dmitri, Github a cette page: github.com/blog/273-github-ribbons Bitbucket ou tout autre service propose- t-il quelque chose de similaire?
NoBugs
75

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

Oui: vous n'avez pas le droit de pousser un commit directement sur leur dépôt.
Mais vous avez la possibilité de créer leur référentiel , ce qui en fait votre référentiel, et de pousser le commit à partir de là, en préparant les requêtes d'extraction .

fourchette

VonC
la source
2
Je sais que vous pouvez bifurquer, puis tirer la demande sur Github, ma question est pourquoi on dit "fourche-moi sur Github"?
NoBugs
6
@NoBugs pour que vous sachiez comment contribuer à leur projet.
VonC
19
Je pense que l'accent est mis ici plus sur le "fork me" que sur Github. C'est probablement tout simplement parce que Github est le site le plus populaire de ce type. Je ne pense pas que quiconque ait un gros problème si vous passez à Bitbucket. Bonne question quand même.
JensG
Je ne pense pas que quiconque ait un gros problème si vous écrivez sur gitorious.org , non plus. C'est juste que presque personne ne le fait ...
Michael Paulukonis
37

L’insigne "Fork me on Github" indique que le projet vous donne 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 pouvez ajouter des améliorations".

Il vous permet de jouer avec le code ou de créer une retombée du même projet sans affecter la source originale.

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

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

Le principal (parmi beaucoup d’autres) de donner le droit de créer un projet est de:

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

Certains des projets que vous rencontrez 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

Pourquoi ne voyez-vous pas les badges d'autres hôtes? Github est la plateforme de collaboration et d'hébergement git la plus populaire.

Brian Kinyua
la source
Exactement. Les workflows DVCS signifient que je peux publier mes résultats sans les imposer à d’autres. Forking signifie ne pas avoir à demander la permission de partager tout ce que vous voulez partager. Si Internet aime vos changements, ils les absorberont.
Warren P
15

Imaginez que vous utilisiez votre éditeur de texte favori et qu'après un certain temps, vous aimeriez vraiment qu'une fonctionnalité soit implémentée (comme l'option Enregistrer un fichier non bloquante).

Après avoir pensé que pour la onzième fois, vous décidiez 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-même.
  2. Placez le projet sur un github et travaillez sur votre fourche.

Si vous avez choisi la deuxième option, après avoir rédigé votre article de manière bien écrite et testée, vous pourriez préparer une demande de tirage et l'ensemble du projet en tirerait parti.

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

Dire 'fourme-moi sur un github', le propriétaire du projet veut simplement s'assurer que vous avez choisi de Fork on githubtélécharger le code et de le publier dans votre répertoire personnel.

Nemanja Boric
la source
7

C'est seulement là pour montrer que c'est un projet open source et que vous le biflez si vous voulez, quelle qu'en soit la raison. Consultez également ce 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;)

Dmitry
la source
6

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

Florian Margaine
la source
5

Github tente d'élargir sa base d'utilisateurs pour inclure tout travail collaboratif, pas seulement l'hébergement de code source; et ainsi ils poussent la fourche et envoient une méthode de demande de tirage . Fabriquer des correctifs et les envoyer par courrier électronique ne serait pas attrayant pour la plupart des gens autres que les programmeurs. Les autorisations Push ne sont pas vraiment importantes ici, car la plupart des utilisateurs de git (ou mercurial, darcs, ou autre) ayant une connaissance considérable de l'outil et du processus de développement pourraient envoyer un courrier électronique avec un correctif attaché.

En outre, Github concerne davantage les réseaux sociaux que l'hébergement de code: votre profil, vos mises en pension 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, entre autres, sont utilisés comme moyen de sollicitation, de cheminement vers le profil de la personne à laquelle appartient le projet. De nos jours, la première chose à attendre d'un développeur est d'avoir un profil Github décent. Même si j'utilise mercurial pour n'importe quoi, j'appuie sur Github via hg-git pour ces raisons.

En fin de compte, le ruban "Fork me on Github" diffère légèrement de celui du bouton "Tweet cet article" ou du bouton "Partager cette chose en G +". (Avoir également un fork d'un référentiel sur votre liste de pensions signifie "je suis un utilisateur de cette chose", il y a des milliers de forks de Linux sur github, même si Linus Torvalds n'accepte pas les demandes d'extraction.)


la source
2

c'est une autre façon de dire "les correctifs 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 plug-in C / C ++ SVG rapide car il préfère son propre plug-in Java brisé et cassé pour des raisons politiques.

Dans la plupart des cas, les fourchettes sont mauvaises et transportées par l'envie ou par des personnes de sociétés égoïstes qui ont des projets qui ne sont pas partagés avec la communauté d'origine et qui ne sont pas alignés avec elle (ex. Canonical ) et l'exemple de ceci est libav / avconv. (qui est un fork de FFMPEG), dans ces cas, la communauté d’origine bénéficie d’ une qualité et d’une sécurité supérieures , et elle accepte les correctifs alignés sur les plans de la communauté.

Dan Walsh a noté l'ancienne définition de la fourche

Je suis en open source depuis longtemps et ma définition d'un "fork" est peut-être datée. Je pense à une "fourchette" comme à une action hostile entreprise 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 abandonner OpenOffice ou Xorg abandonner Xfree86.

Puis il a comparé cela avec la fourchette de github

De nos jours, GitHub a changé le sens. Lorsqu'un référentiel logiciel existe sur GitHub ou une plateforme similaire, tous ceux qui souhaitent contribuer doivent appuyer sur le bouton "fork" et commencer à créer leurs correctifs. À ce jour, Docker sur GitHub compte 9 860 fourchettes, y compris la nôtre. Selon cette définition, cependant, tous les paquets fournis par les distributions qui incluent des correctifs sont des forks. Red Hat livre le noyau Linux, et je n’ai pas entendu parler de fork. Mais cela serait considéré comme un "fork" si vous envisagez un projet en amont livré avec des correctifs "fork".

Muayyad Alsadi
la source
1

Toutes les réponses disant que cela est collaboratif soulèvent la question: pourquoi ne pas dire " Clone- moi sur GitHib" ou "Télécharger le fichier .zip à partir de GitHub"?

Sur GitHub, vous pouvez voir le nombre de forks. Mais, à ma connaissance, ne comptez 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.

PS: je suis assez nouveau sur GitHub, donc si c'est totalement faux, veuillez me le faire savoir.

utilisateur949300
la source
N’est-il pas beaucoup plus simple de dire: «c’est comme ça que le contrôle de version distribuée fonctionne, par requêtes pull, ce qui nécessite bien sûr que je commence par le fork de votre référentiel, puis que je m’engage dans mon fork, puis que je transmette une requête pull si je construis quelque chose qui mérite d’être partagé avec le projet original "
Warren P
1
Je dois admettre que je ne «comprends» pas vraiment. Pourquoi ne pas simplement cloner ou obtenir le fichier zip et, si je fais des modifications, installer le VCS que je veux? Dans les rares cas où je modifie utilement les avantages pour tous, je pouvais avoir recours au courrier électronique, ou alors faire la fourchette.
user949300
Cette réponse est contradictoire. Vous dites à juste titre qu'ils essaient d'encourager la collaboration. Le but d'un tel lien n'est pas de donner aux gens un endroit pour télécharger votre projet, mais bien de les impliquer dans son développement. Ils peuvent télécharger un fichier zip ou le cloner s'ils veulent juste une copie pour eux-mêmes, mais s'ils veulent que leur copie ait un chemin établi pour contribuer au projet en amont, ce qui se fait par le biais d'une fourchette dans laquelle l'amont peut extraire vos contributions. de.
Caleb
@ user949300, vous pouvez toujours simplement utiliser git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.gitet git format-patch masterenvoyer un e-mail ou un
message
0

bricoler sur github rend le son très facile à dire, comme me suivre sur twitter. Il apporte un peu de socialisation dans le monde du développement de mon point de vue personnel, ce qui le rend également évident qu’il est open source et disponible pour modification. Je pense aussi que c’est un concept intéressant avec la bannière "fork me on github" à site du projet

Joseph Rex
la source
Hum Non. Pour cela, il y a «étoile» et «veille» pour les pensions ainsi que «suivi» pour les utilisateurs. L’intérêt principal est d’encourager un type d’action spécifique - l’envoi de contributions en amont - et non pas simplement le rendre social.
Caleb
0

Vous avez probablement intérêt à 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 trop réfléchies.

ashgromnies
la source
C'est la réponse la plus simple qui ait du sens.
Woland