Kann ich Repositorys in Ordnern auf Github anordnen?

158

Ich bin neu in Git und was ich jetzt mache, ist, alle meine letzten Projekte als Repositories auf Github hochzuladen. Es gibt viele verschiedene Projekte wie Webdesign, WordPress-Themen und verschiedene Arten von Anwendungen. Und einige davon gehören auch zu größeren Projekten, weil es darum ging, einige Dinge als andere Anwendung zu testen.

Das Problem ist, dass ich jetzt eine verwirrende Anzahl von Repositories online habe. Wie kann ich verwandte Github-Repositorys in einer Ordnerstruktur gruppieren? Gibt es eine Funktion, mit der Repositorys auf Github bestellt, strukturiert oder sogar markiert werden können?

Danijar
quelle
1
@ user478212 Die Frage betrifft das Anordnen von Repositorys, nicht von Dateien in einem einzelnen Repository.
Danijar
Der nächste "Ordner" wäre heute "Projekte" (Februar 2019): siehe meine aktualisierte Antwort unten
VonC
"Projekte" simulieren Ordner jedoch nicht direkt. Eine direktere Möglichkeit, Ordner zu simulieren, könnte die Verwendung von Beschreibungs-Tags sein, wie in meiner Antwort unten beschrieben.
Peter554

Antworten:

68

Auf GitHub selbst können Sie Ihre Repos nicht nach "Ordner" gruppieren, es sei denn, Sie erstellen Organisationen .
Siehe SublimeText beispielsweise als Gruppe aller Repos von sublimeText-Paketen.

Dies unterstützt jedoch keine verschachtelte Ordnerorganisation. Vorerst (Juni 2017), unterstützt , dass nur eine verschachtelte Team Organisationsstruktur .

Update Februar 2019: Sie haben jetzt das Konzept des Projekts :
Siehe " Benutzerinterne Projekte - Ihr persönlicher Arbeitsbereich ".

Sie können auch bis zu 5 Repositorys mit Ihrer Projektplatine verknüpfen. Durch das Verknüpfen von Repositorys wird der Umfang der Suche auf diese verknüpften Repositorys beschränkt, sodass Sie neue Probleme, die Sie noch nicht zur Projektplatine hinzugefügt haben, schnell eingrenzen können

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

GitHub unterstützt jetzt auch Tags (in Form von Themen ).


Ursprüngliche Antworten 2012:

Eine andere Lösung besteht darin, Repositorys zu definieren, die auf andere Repos verweisen, die als Submodule deklariert sind .

Auf diese Weise werden beim Klonen eines der Repos (das auf andere Repos verweist), die als "übergeordnete Repos" bezeichnet werden, diese in ein eigenes Verzeichnis mit einem Unterverzeichnis pro Submodul geklont.

Es wird auf Ihrem GitHub-Konto selbst nicht visuell sichtbar sein (da es immer noch eine große Liste von Repos enthält, die mit den übergeordneten Repos noch größer sind). Wenn Sie jedoch ein übergeordnetes Repo klonen, erhalten Sie alle zugehörigen Submodule zurück.


Die Ausgabe 302, die in den Kommentaren von AnneTheAgile im Jahr 2014 erwähnt wurde, bezieht sich nur auf jetzt (Nov. 2018).tbnorth/github_repo_tags

Das kleine Python-Programm in diesem Repository verwendet die GitHub-API, um eine Liste Ihrer Repos abzurufen. und fügen Sie ihren Namen, ihre Beschreibung und ihre URL einem neuen Repo hinzu, das standardmäßig repo_tags heißt. Anfänglich ist jedes „Problem“ nicht klassifiziert gekennzeichnet. Sie können es jedoch nach Belieben mit einem regulären Problemkennzeichen versehen.

Beim erneuten Ausführen werden repo_tags.pynur Probleme für Repos erstellt. das war noch nicht von einem Thema abgedeckt.

VonC
quelle
4
ok, also muss ich viele Organisationen verwenden ... gibt es einen Grund, warum Sie Ihre Mitarbeiter nicht nach Ordnern strukturieren können?
Danijar
4
@sharethist kein Grund, den ich kenne, außer dass dies noch keine von GitHub vorgeschlagene Funktion ist.
VonC
5
Wunschliste Hinweis; Tags wären auch für mich in Ordnung. github.com/isaacs/github/issues/302
AnneTheAgile
4
Wow, unglaublich, dass ein so großer, gut entwickelter und beliebter Dienst eine so grundlegende Funktion nicht unterstützt, die es schon immer gab.
Michael
1
@PeterByfield Das ist die einzige offizielle Problemumgehung, also werde ich mich vorerst daran halten.
VonC
9

Ich benutze Organisationen , um Repos zu arrangieren. Dies ermöglicht eine saubere Abgrenzung und eine klare Organisation, die bei Bedarf zur Weitergabe geeignet ist. Beispielsweise:

Meine Organisationen

  • Jmr-iOS (iOS-Repos)
  • Jmr-Work (Arbeitsrepos)
  • Benutzerkonto (Pers repos)

Alle Organisations-Repos sind jedoch öffentlich, es sei denn, Sie aktualisieren auf ein Enterprise Cloud-Konto (25 USD / Monat).

J-Dizzle
quelle
1
Alle Organisations-Repos sind öffentlich, auch wenn Sie ein Upgrade auf ein Entwicklerkonto durchführen. Wenn Sie also Ihren Organisationsplan auf Unternehmen oder Team aktualisieren müssen (der Preis beginnt heutzutage bei 25 Euro pro Monat und erlaubt 5 Entwicklern, oder Sie können das Unternehmen ab 21 Dollar für jeden Benutzer pro Monat nutzen)
Curious Mind
guter Fang! Ich habe aktualisiert, um das aktuelle Schema
wiederzugeben.
4

Dies ist weniger eine Antwort als ein Heads-up.

Ein neuer Nebeneffekt der Strukturierung unter Verwendung von Organisationen ist aufgrund der folgenden Ankündigung von kostenlosen privaten Repos für Benutzer zutage getreten: https://blog.github.com/2019-01-07-new-year-new-github/

Private Repos der Organisation sind immer noch nicht kostenlos. Wenn Sie also Organisationen verwenden, um Repos zu trennen, kann Ihre Organisation keine kostenlosen privaten Repos verwenden, wenn Sie dies benötigen.

Michael Gregoire
quelle
2

Für den Anfang können Sie Repos jetzt in GitHub in Form von Themen markieren. Yay!

Aber ich denke nicht, dass es das größere Problem löst. Dafür habe ich ein Ordnersystem der obersten Ebene ausprobiert (wobei jedes Projekt ein Ordner in einem Repo ist). Ich habe auch einen Zweig pro Projektsystem ausprobiert (wobei sich jedes Projekt in einem neuen Zweig befindet). Mit diesem letzten können Sie jedes Projekt auch einzeln ziehen und schieben! Aber beides ist nicht ideal.

Sie können sich auch andere Versionskontrollsysteme wie Subversion und Quecksilber ansehen . Mercurial kann bei Bedarf auch auf Bitbucket gehostet werden , und Facebook prüft sogar die Unterstützung für " Multi-Projekt-Repositories ".

Ich persönlich mag das System von https://hg.openjdk.java.net/ (oder http://hg.netbeans.org/ ), in dem Sie ein Ordner-Setup haben und jedes Projekt an Endpunkten gehostet wird. Der beste Weg, dies zu erreichen, besteht darin, eine Website (die Sie in GitHub erstellen können) mit Ihrer Projektstruktur zu erstellen (z. B. https://mvnrepository.com/ oder https://www.npmjs.com/ ).

gagarwa
quelle
2

Eine Möglichkeit, Ordner zu simulieren, besteht darin, durch Kommas getrennte Tags an das Ende Ihrer Repo-Beschreibung anzuhängen. Sie können dann anhand dieser Tags nach Repos suchen, da der GitHub-Filter "Find a Repository ..." in der Repo-Beschreibung angezeigt wird! Ein Beispiel:

MyRepo: Macht ein paar coole Sachen [Computer-Vision, maschinelles Lernen, Python]

peter554
quelle