Posso organizzare i repository in cartelle su Github?


158

Sono nuovo di Git e quello che sto facendo ora è caricare tutti i miei progetti recenti come repository su github. Esistono molti progetti diversi come web design, temi wordpress e diversi tipi di applicazioni. E alcuni di questi appartengono anche a progetti più grandi perché si trattava di testare alcune cose come un'applicazione diversa.

Il problema è che ora ho una quantità confusa di repository online. Come posso raggruppare i repository github correlati in una struttura di cartelle? Esiste una funzione che offre la possibilità di ordinare e strutturare o persino taggare i repository su github?


1
@ user478212 La domanda riguarda l'organizzazione dei repository, non i file all'interno di un singolo repository.
danijar,

La più vicina di "cartelle" sarebbe oggi "progetti" (febbraio 2019): vedi la mia risposta aggiornata di seguito
VonC

I "progetti" non simulano direttamente le cartelle. Un modo più diretto per simulare le cartelle potrebbe essere quello di utilizzare il tag di descrizione, come descritto nella mia risposta di seguito.
Peter554,

Risposte:


68

Su GitHub stesso, non è possibile raggruppare i repository per "cartella", a meno che non si creino organizzazioni .
Vedi SublimeText , ad esempio, come gruppo di tutti i repository di pacchetti sublimeText.

Ma ciò non supporterà un'organizzazione di cartelle nidificate. Per ora (giugno 2017), supporta solo una struttura organizzativa di team nidificata .

Aggiornamento febbraio 2019: ora hai il concetto di progetto :
vedi " Progetti di proprietà dell'utente: il tuo spazio di lavoro personale "

È inoltre possibile collegare fino a 5 repository alla scheda del progetto. Il collegamento dei repository limiterà l'ambito della ricerca a quei repository collegati, in modo da poter restringere rapidamente eventuali nuovi problemi che non sono stati ancora aggiunti alla scheda di progetto

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

GitHub ora supporta anche i tag (sotto forma di argomenti ).


Risposte originali 2012:

Un'altra soluzione consiste nel definire i repository che fanno riferimento ad altri repository, dichiarati come sottomoduli .

In questo modo, quando si clona uno dei repository (che fa riferimento ad altri repository), chiamato "repository padre", verranno clonati nella propria directory, con una sottodirectory per sottomoduli.

Non sarà visivamente evidente sul tuo account GitHub stesso (poiché conterrà ancora un ampio elenco di repository, anche più grande con i repository principali), ma clonando un repository principale, otterrai tutti i suoi sottomoduli associati.


Il numero 302 menzionato nei commenti di AnneTheAgile nel 2014 fa solo riferimento ora (novembre 2018)tbnorth/github_repo_tags

Il piccolo programma Python in questo repository utilizza l'API GitHub per ottenere un elenco dei repository. e aggiungere il loro nome, descrizione e URL, a un nuovo repository., per impostazione predefinita chiamato repo_tags. Inizialmente ogni "problema" è taggato non classificato, ma puoi taggarlo come preferisci, usando la normale codifica del problema.

Quando riesegui, repo_tags.pycrea solo problemi per i repository. che non erano già coperti da un problema.


4
ok quindi devo usare molte organizzazioni ... c'è qualche motivo per cui non puoi strutturare i tuoi rappresentanti in cartelle?
danijar,

4
@shareth non è un motivo che io conosca, tranne per il fatto che questa non è ancora una funzionalità proposta da GitHub.
VonC

5
Lista dei desideri nota; I tag andrebbero bene anche per me. github.com/isaacs/github/issues/302
AnneTheAgile

4
wow, incredibile che un servizio così ampio, ben sviluppato e popolare non supporti una funzionalità così basilare che esiste da sempre.
Michael,

1
@PeterByfield Questa è l'unica soluzione ufficiale, quindi per ora mi atterrò.
VonC,

9

Uso le organizzazioni per organizzare i pronti contro termine. Ciò consente una delineazione pulita e un'organizzazione chiara, matura per la condivisione, se necessario. Per esempio:

Le mie organizzazioni

  • Jmr-iOS (repository iOS)
  • Jmr-Work (Repos di lavoro)
  • Accesso utente (repository Pers)

Tutti i repository dell'organizzazione sono pubblici, a meno che non si esegua l' upgrade a un account Enterprise Cloud ($ 25 / mese)


1
Tutti i repository dell'organizzazione sono pubblici, anche se si esegue l'upgrade a un account sviluppatore. Quindi, se hai bisogno di aggiornare il tuo piano organizzativo all'impresa o al team (il prezzo al giorno d'oggi parte da 25 euro al mese e consente a 5 sviluppatori, oppure puoi utilizzare l'impresa da 21 dollari per ogni utente, un mese)
Curious Mind

buona pesca! Ho aggiornato per riflettere lo schema attuale, lo sto usando ora
J-Dizzle il

4

Questa non è una risposta tanto quanto un testa a testa.

Un recente effetto collaterale della strutturazione dell'utilizzo delle organizzazioni è emerso a causa del seguente annuncio di repository privati ​​gratuiti per gli utenti: https://blog.github.com/2019-01-07-new-year-new-github/

I repository privati ​​dell'organizzazione non sono ancora gratuiti. Pertanto, l'utilizzo delle organizzazioni per separare i repository comporterà l'impossibilità dell'organizzazione di utilizzare repository privati ​​gratuiti, se è qualcosa di cui hai bisogno.


2

Per cominciare, puoi taggare i repository ora in GitHub, sotto forma di argomenti. Sìì!

Ma non penso che risolva il problema più grande. Per questo, ho provato un sistema di cartelle di livello superiore (in cui ogni progetto è una cartella in un repository). Ho anche provato un ramo per sistema di progetto (dove ogni progetto si trova in un nuovo ramo). Quest'ultimo ti permette di tirare e spingere ogni progetto separatamente! Ma nessuno dei due è l'ideale.

Puoi anche esaminare altri sistemi di controllo della versione come sovversione e mercuriale . Mercurial può anche essere ospitato su Bitbucket, se necessario, e Facebook sta persino cercando supporto per " repository multi-progetto ".

Personalmente mi piace il sistema di https://hg.openjdk.java.net/ (o http://hg.netbeans.org/ ), dove hai una configurazione di cartelle e ogni progetto è ospitato agli endpoint. Il modo migliore per raggiungere questo obiettivo è attraverso la creazione di un sito Web (cosa che puoi fare in GitHub) con la struttura del tuo progetto (come https://mvnrepository.com/ o https://www.npmjs.com/ ).


2

Un modo possibile per simulare le cartelle è aggiungere tag separati da virgola alla fine della descrizione del repository. Puoi quindi cercare i repository con questi tag, poiché il filtro "Trova un repository ..." di GitHub appare nella descrizione dei repository! Un esempio:

MyRepo: fa cose interessanti [computer-vision, machine learning, python]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.