Devo manter meus repositórios bifurcados do GitHub para sempre?


314

Então, eu peguei o repositório de outra pessoa, fiz algumas alterações, enviei uma solicitação de recebimento e minhas alterações foram inseridas no produto. Ótimo!

Mas ... o que devo fazer com meu repositório bifurcado? Existe uma razão convincente para manter meu repositório por aí ou devo excluí-lo? Não pretendo fazer contribuições adicionais, mas, se mudar de idéia, presumo que sempre posso revertê-lo.

Não estou realmente preocupado em manter um backup. Estou mais preocupado em quebrar links, perder mensagens de confirmação etc.


80
Exclua-o ou o github ficará sem hashes.
Armand

3
código duplicado é mau. E isso também ultrapassa os limites do git.
24511 stjn

7
@stijn - eu li isso mais como "backup" do que "duplicado". E eu não acho que eu já ouvi alguém argumentar que o código de backup é mau ...
Beekguk

3
Delete isso. Afinal, você sempre pode fazer o download do último estado (que você deseja continuar trabalhando de qualquer maneira) do repositório do projeto.
Rook

O que acontece se o repositório original for excluído e ninguém tiver garfos restantes? Como recuperar o acesso ao repo / fork nesse caso?
Kromster 12/10

Respostas:


40

A exclusão de repositórios bifurcados apagará o histórico de suas solicitações pull.

PR com repositório desconhecido

A exclusão de um repositório bifurcado excluirá todas as informações associadas ao seu repositório. Isso pode afetar retroativamente quaisquer referências ao seu repositório, incluindo solicitações pull que já foram mescladas. (Consulte a solicitação Pull exibe "repositório desconhecido" após a exclusão do fork )

Seus comentários e confirmações devem ser preservados em quaisquer solicitações pull associadas ao seu repositório, mas você o fará por seu próprio risco.

No entanto, excluir ramificações antigas após uma mesclagem é perfeitamente seguro.

Embora a exclusão de repositórios deva ser evitada, a exclusão de ramificações não utilizadas é perfeitamente aceitável. De fato, o GitHub incentiva você a excluir ramificações antigas .

Arrumar após solicitações de recebimento

No GitHub, adoramos usar solicitações pull o dia todo, todos os dias. O único problema é que acabamos com muitas ramificações extintas após a solicitação ou solicitação de extração ter sido mesclada ou fechada. De tempos em tempos, um de nós limpava esses ramos com um script, mas achamos que seria melhor cuidar dessa etapa como parte de nosso fluxo de trabalho regular no GitHub.com.

A partir de hoje, após a mesclagem de uma solicitação de solicitação, você verá um botão para excluir a ramificação remanescente:

Botão Excluir este ramo

Se a solicitação de recebimento foi fechada sem ser mesclada, o botão parecerá um pouco diferente para avisá-lo sobre a exclusão de confirmações não imersas:

Excluir ramificação com aviso

Obviamente, você pode excluir apenas ramificações nos repositórios aos quais você tem acesso por push.

Aproveite seus repositórios arrumados!

Como alternativa, se você realmente não deseja mantê-los por perto, pode arquivar um repositório para indicar que ele não é mais mantido ativamente.

Veja também


1
O que exatamente acontece com as solicitações pull fechadas não imersas quando você exclui sua ramificação (o segundo caso no artigo citado)? Os commits ainda estarão disponíveis na solicitação de recebimento, apenas sem o histórico deles, ou eles desaparecerão completamente?
erro de digitação

2
@typo De acordo com a documentação do GitHub, " Você não pode excluir ramificações associadas a solicitações de
recebimento

207

Se sua solicitação de recebimento foi aceita e você não fez outras alterações que possa usar pessoalmente, exclua-a.

  1. Excluir não prejudica nada.
  2. Você sempre pode reformar se precisar
  3. Reduz os repositórios inúteis nos resultados de pesquisa quando as pessoas estão procurando por algo
  4. Se você usar o GitHub como uma espécie de currículo para possíveis empregos / contratos, será melhor se você não tiver dezenas de repositórios bifurcados nos quais não está trabalhando no momento. Você parecerá mais eficiente.
  5. Isso ajuda a sua própria sanidade quando você não precisa percorrer centenas de acordos inúteis.
  6. É melhor para o GitHub. :)

50
A única desvantagem disso é que a solicitação pull mostrará "consolidação mesclada <commit> em <repo>de unknown repository<data>", o que é um pouco estranho.
PLPeeters

18
@PLPeeters, na verdade essa é uma grande desvantagem.
Pacerier 13/08/2015

4
Eu sugiro usar remove-github-forkspara "Excluir todos os garfos que não têm confirmações que não estão no repositório principal". Funciona como um encanto.
fregante

3
@SteveMoser Posso estar errado, mas acho que você ainda mantém a lista "Repositórios para os quais contribuiu". Eu tinha um Tirei cada conexão entre e ainda ficou lá de alguma forma, mas poderia de sido um golpe de sorte: P
Mark Pieszak - Trilon.io

17
Tomei o risco e excluídos do repositório bifurcada e minha lista contribuiu não ficar afectado por isso posso dizer com segurança que a exclusão de repo bifurcada não afetará os seus créditos de contribuição
Amin Mohamed Ajani

76

Você pode excluir sua bifurcação assim que enviar uma solicitação de recebimento , independentemente de ter sido mesclada ou não. O GitHub armazena todos os PRs no repositório upstream , o que significa que as alterações propostas são rastreadas mesmo se o fork for excluído.

Isso simplifica a decisão.

Você ainda pode querer manter o garfo se:

  • Você estará contribuindo mais imediatamente (por exemplo, estenda o PR existente ou abra novos PRs)

Você pode excluir a bifurcação se:

  • Você quer um portfólio limpo de projetos com o seu nome

7
"Você pode excluir sua bifurcação assim que enviar sua solicitação de recebimento" É o que eu estava procurando!
Unnawut

Eu também, mas a resposta começa com "Se sua solicitação de recebimento foi aceita ..." Você tentou: D
Legends

4
Aviso : Quando você exclui sua bifurcação, o nome da filial original é removido de todas as solicitações de recebimento pendentes. ( Stevoisiak quer fundir 1 comprometer a Drugoy:masterpartir deunknown repository )
Stevoisiak

20

Eu provavelmente tar / gzip-lo e colocá-lo em um diretório de arquivo e excluí-lo 3 anos depois. ;) Honestamente, se você não pretende trabalhar novamente nos próximos meses e não o utiliza há algum tempo, acho que seria seguro excluí-lo.


9

Apenas para adicionar às respostas fornecidas - o próprio GitHub recomenda excluir ("arrumar") os repositórios bifurcados depois que eles foram mesclados.

Isso pode ser feito diretamente na solicitação pull após a mesclagem - consulte esta postagem do blog .

Além disso, a partir deste momento, não vejo nenhuma desvantagem observada nos comentários:

  • mesmo depois de excluir o repositório bifurcado, há uma mensagem correta na solicitação de recebimento (nenhum "repositório desconhecido")
  • repositório para o qual você contribuiu ainda está listado em sua atividade de contribuição
  • você ainda está listado nos colaboradores desse repositório

Eu não recomendaria excluí-lo antes da mesclagem, como sugerido por @Dennis, pois você ainda poderá fazer algumas modificações no código, se solicitado pelos autores.


2
Acabei de excluir um repositório bifurcado e a solicitação pull agora diz unknown repository. Ah bem.
Krassi

10
Seu link vai para um artigo explicando como excluir uma ramificação após uma mesclagem de PR bem-sucedida; Esta pergunta, no entanto, pergunta sobre a exclusão de um repositório . Você só observará o "repositório desconhecido" quando excluir seu próprio fork do projeto ( repositório ).
stakx

2
A questão é excluir um garfo, não um ramo.
Andy Andy
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.