Czy mogę rozmieścić repozytoria w folderach na Githubie?

158

Jestem nowy w git i teraz robię wrzucenie wszystkich moich ostatnich projektów jako repozytoriów do github. Istnieje wiele różnych projektów, takich jak projektowanie stron internetowych, motywy WordPress i różne typy aplikacji. Niektóre z nich należą również do większych projektów, ponieważ dotyczyły testowania niektórych rzeczy jako innej aplikacji.

Problem polega na tym, że mam teraz zagmatwaną liczbę repozytoriów online. Jak mogę pogrupować powiązane repozytoria github w strukturę folderów? Czy istnieje funkcja zapewniająca możliwość porządkowania i strukturyzowania, a nawet tagowania repozytoriów na githubie?

danijar
źródło
1
@ user478212 Pytanie dotyczy rozmieszczenia repozytoriów, a nie plików w pojedynczym repozytorium.
danijar
Najbliższym z „folderów” byłyby dzisiejsze „projekty” (luty 2019 r.): Zobacz moją zaktualizowaną odpowiedź poniżej
VonC,
„Projekty” nie symulują jednak bezpośrednio folderów. Bardziej bezpośrednim sposobem symulacji folderów mogłoby być użycie tagowania opisów, jak opisano w mojej odpowiedzi poniżej.
peter554

Odpowiedzi:

68

W samym GitHubie nie możesz grupować repozytoriów według „folderów”, chyba że utworzysz organizacje .
Zobacz na przykład SublimeText jako grupę wszystkich repozytoriów pakietów sublimeText.

Ale to nie będzie obsługiwać zagnieżdżonej organizacji folderów. Na razie (czerwiec 2017 r.) Obsługuje tylko zagnieżdżoną strukturę organizacji zespołu .

Aktualizacja z lutego 2019 r .: masz teraz koncepcję projektu :
zobacz „ Projekty należące do użytkowników - Twój osobisty obszar roboczy

Możesz również połączyć do 5 repozytoriów z tablicą projektu. Łączenie repozytoriów ograniczy zakres wyszukiwania do tych połączonych repozytoriów, dzięki czemu możesz szybko zawęzić wszelkie nowe problemy, których jeszcze nie dodałeś do tablicy projektu

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

GitHub obsługuje teraz również tagi (w formie tematów ).


Oryginalne odpowiedzi 2012:

Innym rozwiązaniem jest zdefiniowanie repozytoriów, które odwołują się do innych repozytoriów, zadeklarowanych jako moduły podrzędne .

W ten sposób, gdy klonujesz jedno z repozytoriów (które odwołuje się do innych repozytoriów), zwane „repozytoriami nadrzędnymi”, zostaną one sklonowane we własnym katalogu, z podkatalogiem dla każdego modułu podrzędnego.

Nie będzie to widoczne wizualnie na Twoim koncie GitHub (ponieważ nadal będzie zawierało dużą listę repozytoriów, nawet większą w przypadku repozytoriów nadrzędnych), ale klonując jedno repozytorium nadrzędne, odzyskasz wszystkie powiązane z nim moduły podrzędne.


W kwestii 302 wspomniano w komentarzach przez AnneTheAgile w 2014 referencji właśnie (listopad 2018)tbnorth/github_repo_tags

Mały program Python w repozytorium GitHub wykorzystuje API, aby uzyskać listę swoich transakcji repo. i dodaj ich nazwę, opis i adres URL do nowego repozytorium, domyślnie o nazwie repo_tags. Początkowo każdy „problem” jest oznaczany jako niesklasyfikowany, ale możesz je oznaczyć według własnego uznania, używając zwykłego tagowania problemów.

Po ponownym uruchomieniu repo_tags.pytworzy problemy tylko dla repozytoriów. które nie zostały jeszcze objęte problemem.

VonC
źródło
4
ok, więc muszę korzystać z wielu organizacji ... czy jest jakiś powód, dla którego nie możesz uporządkować swoich przedstawicieli według folderów?
danijar
4
@shareto nie ma powodu, o którym wiem, z wyjątkiem tego, że nie jest to jeszcze funkcja proponowana przez GitHub.
VonC
5
Notatka na liście życzeń; Tagi też by mi się przydały. github.com/isaacs/github/issues/302
AnneTheAgile
4
wow, niesamowite, że tak duża, dobrze rozwinięta, popularna usługa nie obsługuje tak podstawowej funkcji, która istnieje od zawsze.
Michael
1
@PeterByfield To jedyne oficjalne obejście, więc na razie się go trzymam.
VonC,
9

Korzystam z organizacji do organizowania repozytoriów. Pozwala to na wyraźne wytyczenie i przejrzystą organizację, gotową do udostępnienia w razie potrzeby. Na przykład:

Moje organizacje

  • Jmr-iOS (repozytoria iOS)
  • Jmr-Work (repozytoria pracy)
  • Konto użytkownika (repozytoria Pers)

Wszystkie repozytoria organizacji są jednak publiczne, chyba że dokonasz aktualizacji do konta Enterprise Cloud (25 USD miesięcznie)

J-Dizzle
źródło
1
Wszystkie repozytoria organizacji są publiczne, nawet jeśli przejdziesz na konto programisty. Tak więc, jeśli chcesz zaktualizować plan organizacji do przedsiębiorstwa lub zespołu (obecnie cena zaczyna się od 25 euro miesięcznie i pozwala na 5 programistów, lub możesz korzystać z przedsiębiorstwa od 21 dolarów na każdego użytkownika na miesiąc)
Curious Mind
dobry chwyt! Zaktualizowałem, aby odzwierciedlić obecny schemat, używam tego teraz
J-Dizzle
4

To nie jest odpowiedź, a raczej ostrzeżenie.

Niedawny efekt uboczny strukturyzacji z wykorzystaniem organizacji wyszedł na jaw w związku z następującym ogłoszeniem bezpłatnych prywatnych repozytoriów dla użytkowników: https://blog.github.com/2019-01-07-new-year-new-github/

Prywatne repozytoria organizacji nadal nie są bezpłatne. Dlatego używanie organizacji do oddzielnych repozytoriów spowoduje, że Twoja organizacja nie będzie w stanie korzystać z bezpłatnych prywatnych repozytoriów, jeśli jest to coś, czego potrzebujesz.

Michael Gregoire
źródło
2

Na początek możesz teraz tagować repozytoria w GitHub w formie tematów. Yay!

Ale nie sądzę, żeby to rozwiązało większy problem. W tym celu wypróbowałem system folderów najwyższego poziomu (gdzie każdy projekt jest folderem w jednym repozytorium). Wypróbowałem również jedną gałąź na system projektu (gdzie każdy projekt znajduje się w nowej gałęzi). Ten ostatni pozwala również na osobne wyciąganie i popychanie każdego projektu! Ale to nie jest idealne.

Możesz również przyjrzeć się innym systemom kontroli wersji, takim jak subversion i mercurial . Jeśli potrzebujesz, Mercurial może być również hostowany na Bitbucket , a Facebook szuka nawet wsparcia dla „ repozytoriów wielu projektów ”.

Osobiście podoba mi się system https://hg.openjdk.java.net/ (lub http://hg.netbeans.org/ ), w którym masz konfigurację folderów, a każdy projekt jest hostowany na punktach końcowych. Najlepszym sposobem na osiągnięcie tego jest stworzenie strony internetowej (co można zrobić w GitHub) ze strukturą projektu (np. Https://mvnrepository.com/ lub https://www.npmjs.com/ ).

gagarwa
źródło
2

Jednym z możliwych sposobów symulacji folderów jest dołączanie tagów oddzielonych przecinkami na końcu opisu repozytorium. Następnie możesz wyszukiwać repozytoria według tych tagów, ponieważ filtr GitHub „Znajdź repozytorium ...” znajduje się w opisie repozytorium! Przykład:

MyRepo: robi fajne rzeczy [wizja komputerowa, uczenie maszynowe, Python]

peter554
źródło