Posso organizar repositórios em pastas no Github?

158

Eu sou novo no git e o que estou fazendo agora é fazer upload de todos os meus projetos recentes como repositórios no github. Existem muitos projetos diferentes, como webdesign, temas wordpress e diferentes tipos de aplicativos. E alguns deles também pertencem a projetos maiores porque eles estavam testando algumas coisas como um aplicativo diferente.

O problema é que agora tenho uma quantidade confusa de repositórios online. Como agrupar repositórios relacionados do github em uma estrutura de pastas? Existe um recurso que oferece alguma capacidade de ordenar e estruturar ou até mesmo etiquetar repositórios no github?

danijar
fonte
1
@ user478212 A questão é sobre a organização de repositórios, não arquivos em um único repositório.
danijar 3/09/18
O mais próximo de "pastas" seria hoje "projetos" (fevereiro de 2019): veja minha resposta atualizada abaixo
VonC
"Projetos" não simula diretamente pastas. Uma maneira mais direta de simular pastas pode ser usar a marcação de descrição, conforme descrito na minha resposta abaixo.
Peter554

Respostas:

68

No próprio GitHub, você não pode agrupar seus repositórios por "pasta", a menos que crie organizações .
Veja SublimeText , por exemplo, como um grupo de todos os repositórios de pacotes sublimeText.

Mas isso não suporta uma organização de pastas aninhadas. Por enquanto (junho de 2017), isso suporta apenas uma estrutura de organização de equipe aninhada .

Atualize fevereiro de 2019: agora você tem o conceito de projeto :
consulte " Projetos de propriedade do usuário - seu espaço de trabalho pessoal "

Você também pode vincular até 5 repositórios ao seu quadro de projetos. Vincular repositórios limitará o escopo da pesquisa a esses repositórios vinculados, para que você possa restringir rapidamente quaisquer novos problemas que ainda não tenham adicionado ao quadro de projetos.

https://i0.wp.com/user-images.githubusercontent.com/3477155/52346373-734e2580-29ed-11e9-82ad-9e5f1ab8aa99.gif?resize=1024%2C512&ssl=1

O GitHub também suporta tags agora (na forma de tópicos ).


Respostas originais de 2012:

Outra solução é definir repositórios que fazem referência a outros repositórios, declarados como submódulos .

Dessa forma, quando você estiver clonando um dos repositórios (que referencia outros repositórios), chamados "repositórios pai", eles serão clonados em seu próprio diretório, com um subdiretório por submódulos.

Não será visualmente aparente na sua conta do GitHub (pois ainda contém uma grande lista de repositórios, ainda maior com os repositórios pai), mas ao clonar um repositório pai, você receberá todos os seus submodulos associados.


A edição 302 mencionada nos comentários de AnneTheAgile em 2014 apenas faz referência agora (novembro de 2018)tbnorth/github_repo_tags

O pequeno programa python neste repositório usa a API do GitHub para obter uma lista dos seus repositórios. e adicione nome, descrição e URL a um novo repositório., por padrão, chamado repo_tags. Inicialmente, cada "problema" é marcado sem classificação, mas você pode marcá-los como quiser, usando a marcação regular de problemas.

Quando executado novamente, repo_tags.pycria apenas problemas para repositórios. que ainda não estavam cobertos por um problema.

VonC
fonte
4
ok, então eu tenho que usar muitas organizações ... existe alguma razão para você não conseguir estruturar seus representantes por pastas?
danijar
4
@sharethis nenhuma razão que eu saiba, exceto que ainda não é um recurso proposto pelo GitHub.
VonC 8/08
5
Nota da lista de desejos; Tags também seria bom para mim. github.com/isaacs/github/issues/302
AnneTheAgile
4
uau, incrível que um serviço popular tão grande e bem desenvolvido não suporte um recurso tão básico que existe há muito tempo.
Michael
1
@ PeterByfield Essa é a única solução oficial, então eu continuarei com isso por enquanto.
VonC 10/02/19
9

Uso Organizações para organizar repos. Isso permite um delineamento limpo e uma organização clara, pronta para compartilhar, se necessário. Por exemplo:

Minhas organizações

  • Jmr-iOS (repositórios iOS)
  • Jmr-Work (Contratos de trabalho)
  • Conta do usuário (repositórios pessoais)

Todos os repositórios de organização são públicos, a menos que você atualize para uma conta da Enterprise Cloud (US $ 25 / mês)

J-Dizzle
fonte
1
Todos os repositórios de organização são públicos, mesmo se você atualizar para uma conta de desenvolvedor. Portanto, se você precisar atualizar o plano da sua organização para empresa ou equipe (atualmente o preço começa em 25 euros por mês e permite 5 desenvolvedores, ou você pode usar a empresa a partir de 21 dólares para cada usuário, um mês)
Curious Mind
boa pegada! Tenho atualizado para refletir o esquema atual, eu estou usando isso agora
J-Dizzle
4

Esta não é uma resposta, mas um alerta.

Um efeito colateral recente da estruturação de organizações utilizando veio à tona devido ao seguinte anúncio de repositórios privados gratuitos para usuários: https://blog.github.com/2019-01-07-new-year-new-github/

Os repositórios privados da organização ainda não são gratuitos. Portanto, o uso de organizações para separar repositórios resultará na incapacidade da organização de utilizar repositórios privados gratuitos, se for necessário.

Michael Gregoire
fonte
2

Para iniciantes, você pode marcar repos agora no GitHub, na forma de tópicos. Yay!

Mas acho que não resolve o problema maior. Para isso, tentei um sistema de pastas de nível superior (onde cada projeto é uma pasta em um repo). Eu também tentei uma ramificação por sistema de projeto (onde cada projeto está em uma nova ramificação). Este último permite que você puxe e empurre cada projeto separadamente também! Mas, nem é o ideal.

Você também pode procurar outros sistemas de controle de versão como subversion e mercurial . O Mercurial também pode ser hospedado no Bitbucket, se você precisar, e o Facebook está até procurando suporte para " repositórios de múltiplos projetos ".

Pessoalmente, gosto do sistema https://hg.openjdk.java.net/ (ou http://hg.netbeans.org/ ), onde você tem uma configuração de pasta e cada projeto é hospedado nos pontos de extremidade. A melhor maneira de conseguir isso é criando um site (que você pode fazer no GitHub) com a estrutura do seu projeto (como https://mvnrepository.com/ ou https://www.npmjs.com/ ).

Gagarwa
fonte
2

Uma maneira possível de simular pastas é anexando tags separadas por vírgula ao final da descrição do seu repo. Você pode procurar por repositórios por essas tags, pois o filtro 'Localizar um repositório ...' do GitHub aparece na descrição do repositório! Um exemplo:

MyRepo: Faz algumas coisas legais [visão computacional, aprendizado de máquina, python]

peter554
fonte