GitHub: faça do fork um “projeto próprio”

118

Eu encontrei um bom projeto GitHub que estendi muito. Acredito que minhas mudanças são boas, porque estão funcionando. Mas parece que o autor original não teve tempo para revisar essas mudanças e incluí-las. Na verdade, é até possível que os recursos que preciso e implementei não estejam na visão do autor original e simplesmente visemos objetivos diferentes. Não sei, pois nunca recebi respostas dele.

Dito isso, vi que minhas contribuições não são contadas em meu mapa de confirmação. Este é o caso, desde que o repositório original não aceite minhas contribuições. Além disso, meu trabalho só é reconhecido como trabalho e não atrai outras pessoas com a mesma visão que eu. Este é o maior problema para mim, porque vejo muitas pessoas pedindo esses recursos.

Ainda estou oferecendo minhas contribuições para o projeto original, mas vejo que é improvável que sejam aceitas. Agora eu gostaria de fazer do meu garfo um "projeto real". Embora eu planeje sincronizar com o projeto original em alguns momentos, quero renomeá-lo e motivar as pessoas a contribuírem com meu projeto também. Além disso, eu adoraria se o GitHub mostrasse que esse projeto é mantido ativamente (falando do mapa de commit). E, finalmente, adoraria fazer lançamentos adequados dele.

Como posso fazer isso e, bem, tornar meu garfo um projeto completo?

cristão
fonte
Estou confuso, talvez as coisas tenham mudado desde 2014, mas meu projeto TightBlog está listado como um fork do Apache Roller no canto superior esquerdo: github.com/gmazza/tightblog , mas estou recebendo todo o crédito por todos os meus problemas , PR's, etc, embora nenhum trabalho seja aplicado ao projeto principal do Apache Roller, mas apenas ao meu fork: ( github.com/gmazza?tab=overview&period=monthly ). Não tenho mais certeza do que se ganha tornando uma bifurcação um projeto independente.
Glen Mazza

Respostas:

75

Para desanexar o fork e transformá-lo em um repositório independente no GitHub, entre em contato com o suporte do GitHub .

https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork

Oleh Prypin
fonte
9
Além disso, fazer isso manterá os astrônomos, os observadores e a rede de bifurcações. Ao contrário de criar um novo repositório do zero.
Johnco
1
É importante notar que o suporte do GitHub me deu a opção de reparar os garfos filhos ou mantê-los anexados ao meu próprio repositório.
gmarmstrong
41

Para fazer isso, você precisa duplicar o repositório . A versão curta é:

  1. Crie um novo repositório no GitHub.
  2. Clone o repositório bifurcado que deseja separar de seu pai.
  3. Envie todos os branches neste clone para seu novo repositório.
Cdhowie
fonte
Se você deseja que seu repositório ainda tenha o mesmo nome, você provavelmente pode clonar seu repo, excluí-lo no GitHub, criar um novo projeto com o mesmo nome e enviar tudo por push.
Rory O'Kane de
12
Parece que as solicitações de pull do GitHub só podem ser entre os fork do GitHub de um projeto. Portanto, se você duplicar seu repositório, não poderá fazer solicitações de pull do novo repositório. E se você excluir e substituir seu repositório antigo, todas as suas solicitações pull existentes provavelmente serão fechadas porque o GitHub pensará que o código foi excluído e você não poderá fazer novas solicitações pull.
Rory O'Kane de
9
Negar, pois isso pode induzir as pessoas a fazerem ações desnecessárias. A resposta de Oleh deve ser aceita: a melhor maneira é entrar em contato com o suporte do GitHub. Demorou menos de uma hora para converter meu fork em um repositório autônomo.
Georgii Ivankin
5

Isso é super fácil:

  1. Clone o repo em algum lugar: git clone [email protected]:USERNAME/REPOSITORY.git(certifique-se de que ele foi clonado)
  2. Exclua o repo no GitHub (Configurações> Opções> Excluir este repositório)
  3. Crie um novo repositório em branco no GitHub
  4. git remote set-url origin [email protected]:USERNAME/NEW_REPOSITORY.git(se você usou o mesmo nome para o repo, então NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(Eu uso ssh, mas se você usar https, seus urls do github serão parecidos https://github.com/USERNAME/REPOSITORY.git)

Gerbus
fonte
1

Primeiro você deve verificar se a licença está permitindo que você faça isso, geralmente o Código Aberto obriga você a fazer isso porque é tudo sobre evolução de software sem cadeias. Em caso afirmativo, basta criar um novo repo. Não se esqueça de dar crédito aos autores originais e iniciar seu projeto.

Jetroo
fonte
3
É licenciado pelo MIT e sim, pretendo dar os créditos como de costume. Na verdade, eu teria preferido que o autor original simplesmente aceitasse meu código (ou me dissesse por que não aceita)
Christian
1
Se a licença não permitir que você crie um repositório que não seja um fork do GitHub do original, o projeto não deve ser um projeto GitHub público em primeiro lugar, já que os projetos públicos devem ser lançados sob uma licença de código aberto . Não consigo pensar em nenhuma licença de código aberto que proíba fazer cópias de código. Esse é o ponto principal do código aberto. (Claro, pode haver requisitos de atribuição - mas eles podem ser satisfeitos sem que um projeto seja uma bifurcação "adequada" do GitHub.)
cdhowie
O autor certamente deveria tornar seu projeto software livre, mas se não o fizer (por exemplo, se não houver licença), então o projeto não é livre: stackoverflow.com/a/16934573/6791398
gmarmstrong