Por que “bifurque-me no GitHub”? [fechadas]


50

Eu entendo como o GitHub funciona, mas uma coisa que me deixa confuso é: por que quase todo projeto de OSS ultimamente tem um link "Bifurque-me no GitHub" em sua página inicial. Por exemplo,

http://jqtjs.com/ , http://www.daviddurman.com/flexi-color-picker/ e outros.

Por que isso é tão comum? Eles desejam / precisam de validação de código, verificando melhorias de segurança / desempenho que talvez não saibam fazer?

Pretende mostrar que este é um projeto colaborativo - você pode adicionar melhorias?

Eles trabalham no GitHub ou desejam promover seus serviços? Por incrível que pareça, acho que não vi recentemente o logotipo " Projeto de garfo no Bitbucket ".

Minha primeira reação a esse logotipo foi que o projeto provavelmente precisa ser modificado (bifurcado) para integrá-lo a qualquer coisa útil - ou que eles estão incentivando a base de código fragmentada, incentivando todos a criarem seu próprio fork do projeto. Mas não acho que essa seja a intenção.


23
Porque é mais fácil do que escrever "se você quiser contribuir com este projeto ou conferir a fonte, consulte nosso repositório no github". ;-)
nietonfir

11
Estou um pouco surpreso que ninguém tenha mencionado o ... O que é isso, um trocadilho? Sugestão? Mas essa expressão em particular não funcionaria com o bitbucket; o site deles dá a impressão de ser mais profissional que o github. Porque foi assim que eu entendi sua pergunta na primeira leitura - "por que o bitbucket não tem isso?"
Izkata #

2
Eles são widgets sociais , muito parecidos com os que aparecem no link 'compartilhar' em uma pergunta / resposta do SE: você obtém widgets para o Google+, Facebook e Twitter. Eles estão prontos para uso pelos designers do site, tão fáceis de integrar. Eu acho que não existe algo como, por exemplo, o Bitbucket, então não há nada a notar: se algum projeto tiver seu próprio widget 'fork me' feito em casa, eles provavelmente não se pareceriam com nenhum outro.
precisa

Estou votando para encerrar esta questão como fora de tópico, porque se trata da cultura de software de código aberto. Atualmente, perguntas sobre como as comunidades colaboram juntas para produzir, distribuir, comercializar e monetizar projetos de código aberto estão no tópico do Open Source Stack Exchange .
Thomas Owens

Respostas:


20

Além do lado de fomento à colaboração, do ponto de vista comercial, ele aumentará e fortalecerá o tráfego, a base de usuários e a posição de mercado do GitHub. Portanto, há um pouco de uma estratégia de negócios associada a ela também.

Pessoalmente, não me importo com isso porque o GitHub fornece um serviço valioso para a comunidade de código aberto.


23
Por que sua resposta é da perspectiva do GitHub? As pessoas não estão colocando esse logotipo em seus sites para fortalecer o tráfego, a base de usuários e a posição de mercado do GitHub. Isso pode ser um efeito colateral, mas não é esse o objetivo . Como isso é uma "estratégia de negócios" do GitHub? O GitHub nem é responsável por colocar esse logotipo nos sites OSS (os mantenedores do site OSS são).
Ben Lee

3
@ Ben Lee Seu comentário é bem recebido. Mas eu diria que não há um propósito, mas muitos . Não rejeitei a opinião de que um objetivo é promover a colaboração, simplesmente que também devemos reconhecer que o GitHub também é um negócio (pode-se argumentar que eles são os líderes de mercado nesse setor) e que outro objetivo do Fork Me on O GitHub é uma vantagem estratégica. Concedido que isso é voluntário, mas é eficaz, no entanto. Torna o GitHub mais visível na Internet, uma parte essencial de qualquer estratégia de negócios na Internet.
AsymLabs

2
@BenLee Como dmitri observou, o Github tem esta página: github.com/blog/273-github-ribbons O Bitbucket ou qualquer outro serviço tem algo semelhante?
NoBugs

75

Pretende mostrar que este é um projeto colaborativo - você pode adicionar melhorias?

Sim: você não tem o direito de enviar um commit diretamente no repositório.
Mas você tem a possibilidade de dividir o repo , o que o torna o repo, e enviar por push a partir daí, preparando solicitações de recebimento .

garfo


2
Eu sei que você pode bifurcar e, em seguida, puxar solicitação no Github, minha pergunta é por que eles dizem "bifurcar-me no Github"?
NoBugs 19/10/2013

6
@NoBugs para garantir que você saiba como contribuir com o projeto deles.
VonC 19/10/2013

19
Eu acho que o foco aqui está mais no "fork me" do que no Github. Provavelmente é simplesmente porque o Github é o site mais popular desse tipo. Eu não acho que alguém tenha um grande problema se você usar o Bitbucket. Boa pergunta de qualquer maneira.
JensG

Não acho que alguém tenha um grande problema se você se interessar pelo gitorious.org . É apenas que quase ninguém faz ...
Michael Paulukonis

37

O selo "Bifurque-me no Github" tem como objetivo mostrar que é o projeto ao qual você tem o direito de contribuir com o projeto ou usá-lo como ponto de partida para o seu próprio projeto.

Isso meio que mostra que "é um projeto colaborativo e que você pode adicionar melhorias".

Ele permite que você brinque com o código ou faça um spin-off do mesmo projeto sem afetar a fonte original.

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

O mesmo princípio se aplica a todos os outros hosts git.

O principal ponto (entre muitos outros) de dar o direito de bifurcar um projeto é

  • fomentar a colaboração - permitindo que as pessoas trabalhem juntas na melhoria do projeto.
  • adicione conhecimento - permitindo que as pessoas estudem seu código.

Alguns dos projetos que você pode encontrar podem ser da equipe do Github para suas próprias necessidades particulares. Eles não querem promover o github. Você pode encontrar projetos pelo github aqui: https://github.com/github

O motivo pelo qual você não vê crachás de outros hosts é porque o Github é a plataforma de hospedagem e colaboração mais popular do git.


Exatamente. Os fluxos de trabalho do DVCS significam que posso publicar meus resultados sem os infligir a outros. Bifurcação significa não ter que pedir permissão para compartilhar o que você deseja compartilhar. Se a Internet gostar de suas alterações, elas serão absorvidas.
Warren P

15

Imagine que você usa seu editor de texto favorito e, depois de algum tempo, acha que realmente adoraria algum recurso a ser implementado (como a opção Salvar arquivo sem bloqueio).

Depois de pensar que, pela décima primeira vez, você decide escrever um sozinho. Depois de encontrar a página github deste projeto, você tem duas opções:

  1. Faça o download do código-fonte, modifique-o e guarde-o.
  2. Bifurque o projeto em um github e trabalhe em seu garfo.

Se você escolheu a segunda opção, depois de deixar seu recurso bem escrito e bem testado, poderá preparar uma solicitação pull e, em seguida, todo o projeto se beneficiará.

No entanto, se você escolher o primeiro caminho, é muito provável que você esqueça sua modificação e que ninguém, exceto você, se beneficie dela (sim, você pode compartilhar o código manualmente, mas algum outro codificador pode esquecer isso com facilidade. está forçando você a se socializar mais com o trabalho do outro).

Dizer 'bifurque-me no dono de um github' só quer ter certeza de escolher o Fork on githubdownload do código e a publicação no diretório inicial.


7

Está lá apenas para mostrar que este é um projeto de código aberto e você o bifurca se quiser, seja qual for o motivo. Além disso, confira esta postagem no GitHub: https://github.com/blog/273-github-ribbons

Atualização: Pessoalmente, adiciono essas fitas do GitHub para que as pessoas possam me encontrar no GitHub e estrelar meus projetos;)


6

Isso significa que eles estão no github, onde o serviço de bifurcação é barato e desejam incentivar contribuições para melhorar o software e a comunidade.


5

O Github está tentando ampliar sua base de usuários para incluir qualquer trabalho colaborativo, não apenas a hospedagem do código-fonte; e, assim, empurram o garfo e enviam um método de solicitação de recebimento. Fazer patches e enviá-los por email não seria atraente para a maioria das pessoas, além de programadores e afins. As permissões push não são realmente importantes aqui, pois, eventualmente, a maioria dos usuários do git (ou mercurial, darcs ou qualquer outra coisa) com considerável conhecimento da ferramenta e do fluxo de trabalho de desenvolvimento seria capaz de enviar um email com um patch anexado de alguma forma.

Além disso, o Github é mais sobre redes sociais do que hospedagem de código: seu perfil, repositórios e alterações compõem sua identidade como desenvolvedor de software, assim como seus tweets e '+ 1s. Todas essas fitas, botões e similares são usados ​​como um meio de auto-avaliação, um caminho para o perfil da pessoa a quem o projeto pertence. Atualmente, ter um perfil decente no Github é a primeira coisa que se espera de um desenvolvedor. Embora eu use mercurial para qualquer coisa, eu envio para o Github via hg-git por esses motivos.

Eventualmente, a faixa de opções "Bifurque-me no Github" difere levemente de propósito do botão "Tweet este artigo" ou do botão "Compartilhar esta coisa no G +". (Também ter um fork de um repositório na sua lista de repositórios significa "Eu sou um usuário dessa coisa", existem milhares de bifurcações do Linux no github, mesmo que Linus Torvalds não aceite solicitações de recebimento.)


2

é outra maneira de dizer "patches são bem-vindos".

em vez de enviar desejos e solicitações de recursos, as pessoas podem enviar solicitações pull onde o autor original revisa, valida e mescla a solicitação pull.

historicamente bifurcação é uma ação hostil feita por um grupo que está em conflito com o gerenciamento do projeto original, por exemplo, o OpenOffice da Sun costumava rejeitar o rápido plug-in C / C ++ SVG porque prefere seu próprio plug-in baseado em Java, lento e quebrado por razões políticas.

Na maioria dos casos, os garfos são ruins e carregados por pessoas invejosas ou de empresas egoístas que têm planos que não são compartilhados com a comunidade original e não estão alinhados com ele (por exemplo, Canonical ), e exemplo disso é libav / avconv (que é uma bifurcação do FFMPEG), nesses casos, a comunidade original tem maior qualidade, segurança e recebe patches alinhados com os planos da comunidade.

Dan Walsh observou a antiga definição de garfo

Estou no código aberto há muito tempo e minha definição de "bifurcação" pode estar datada. Penso em um "garfo" como uma ação hostil executada por um grupo para fazer com que outros usem e contribuam para sua versão de um projeto upstream e ignorem a versão "original". Por exemplo, o LibreOffice utiliza o OpenOffice ou remete o Xorg ao Xfree86.

Então ele comparou isso com o garfo do github

Atualmente, o GitHub mudou o significado. Quando existe um repositório de software no GitHub ou em uma plataforma semelhante, todos que desejam contribuir precisam pressionar o botão "fork" e começar a criar seus patches. Até o momento em que este artigo foi escrito, o Docker no GitHub possui 9.860 garfos, incluindo o nosso. Por essa definição, no entanto, todos os pacotes enviados pelas distribuições que incluem patches são garfos. A Red Hat fornece o Linux Kernel, e eu não ouvi isso chamado de fork. Mas seria considerado um "garfo" se você estiver considerando qualquer projeto upstream enviado com patches um garfo.


1

Todas as respostas dizendo que isso é colaborativo levantam a pergunta: por que não dizer " Clone- me no GitHib" ou "Baixar .zip do GitHub"?

No GitHub, você pode ver uma contagem do número de garfos. Mas, que eu saiba, não é uma contagem do número de clones ou downloads de zip.

Então, eu diria que em parte é para incentivar a colaboração, em parte para obter feedback e validação de que as pessoas estão usando seu código.

PS: Eu sou bastante novo no GitHub, por isso, se isso for totalmente errado, você deve me informar.


Não é muito mais simples dizer apenas "é assim que o controle de versão distribuído funciona, por solicitações pull, o que naturalmente exige que eu garanta seu repositório primeiro, depois confirme com meu fork e emita uma solicitação pull se criar algo que valha a pena compartilhar com o projeto original "
Warren P

11
Tenho que admitir que eu realmente não entendo. Por que não clonar ou obter o arquivo zip e, se eu fizer alterações, configure o VCS que eu quiser? Nos raros casos em que faço alterações úteis em benefício de todos, posso recorrer ao e-mail ou fazer a bifurcação.
user949300

Esta resposta é auto-contraditória. Você sugere, com razão, que eles estão tentando incentivar a colaboração. O objetivo desse link não é dar às pessoas um local para fazer o download do seu projeto; o objetivo é envolvê-las no desenvolvimento. Eles poderiam fazer o download de um zip ou cloná-lo se quisessem uma cópia para si mesmos, mas se quiserem que sua cópia tenha um caminho estabelecido para contribuir de volta ao projeto upstream que é feito através de uma bifurcação na qual o upstream pode obter suas contribuições. de.
Caleb Caleb

@ user949300, você ainda pode simplesmente usar git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.gite git format-patch masterenviar e-mail ou algo semelhante #
Sebastian Godelet 23/04

0

bifurcar no github faz com que pareça muito fácil dizer como me siga no twitter. Traz um pouco de socialização para o mundo do desenvolvimento a partir de minha própria perspectiva, além de tornar óbvio que é de código aberto e disponível para modificações. Também acho que é um bom conceito com o banner "fork me on github" em uma extremidade do seu site do projeto


Hum. Não. Para isso, existem 'star' e 'watch' para repositórios, além de 'follow' para usuários. O objetivo dos garfos é incentivar um tipo específico de ação - enviando contribuições a montante - não apenas torná-lo social.
21814 Caleb

0

Provavelmente, é melhor você seguir a resposta mais simples: eles querem que você saiba que o código está disponível gratuitamente no GitHub. Eu acho que suas hipóteses são um pouco exageradas.


Esta é a resposta mais simples que realmente faz sentido.
Woland
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.