Могу ли я разместить репозитории в папках на Github?

158

Я новичок в git, и сейчас я загружаю все свои последние проекты в качестве репозиториев на github. Есть много разных проектов, таких как веб-дизайн, WordPress темы и различные типы приложений. И некоторые из них также относятся к более крупным проектам, потому что они были о тестировании некоторого материала как другого приложения.

Проблема в том, что у меня сейчас запутанное количество репозиториев онлайн. Как я могу сгруппировать связанные репозитории github в структуре папок? Есть ли возможность, позволяющая упорядочивать и структурировать или даже тегировать репозитории на github?

Данияр
источник
1
@ user478212 Речь идет об организации репозиториев, а не файлов в одном репозитории.
Данияр
Самым близким из «папок» были бы сегодня «проекты» (февраль 2019 года): см. Мой обновленный ответ ниже
VonC
«Проекты» не имитируют папки напрямую. Более прямым способом имитации папок может быть использование тегов описания, как описано в моем ответе ниже.
peter554

Ответы:

68

На самом GitHub вы не можете группировать свои репозитории по «папкам», если вы не создаете организации .
Смотрите SublimeText , например, как группу всех репозиториев пакетов sublimeText.

Но это не будет поддерживать организацию вложенных папок. На данный момент (июнь 2017 г.) это поддерживает только организационную структуру вложенной команды .

Обновление за февраль 2019 года: теперь у вас есть концепция проекта :
см. « Проекты, принадлежащие пользователям - ваше личное рабочее пространство »

Вы также можете связать до 5 репозиториев с вашей платой проекта. Связывание репозиториев ограничит область поиска этими связанными репозиториями, поэтому вы сможете быстро сузить все новые проблемы, которые вы еще не добавили в доску проектов.

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

GitHub также поддерживает теги (в виде тем ).


Оригинальные ответы 2012:

Другое решение для вас - определить репозитории, которые ссылаются на другие репозитории, объявленные как подмодули .

Таким образом, когда вы клонируете одно из репо (которое ссылается на другие репо), называемое «родительские репо», они будут клонированы в своем собственном каталоге с подкаталогом для подмодулей.

Это не будет визуально заметно в вашей учетной записи GitHub (так как он по-прежнему будет содержать большой список репо, даже больший по сравнению с родительскими репо), но, клонировав один родительский репо, вы получите обратно все связанные с ним подмодули.


Вопрос 302 упоминается в комментариях по AnneTheAgile в 2014 году только ссылки сейчас (ноябрь 2018)tbnorth/github_repo_tags

Небольшой питон программа в этом хранилище использует API GitHub , чтобы получить список вашего РЕПО. и добавьте их имя, описание и URL в новый репозиторий, по умолчанию называемый repo_tags. Изначально каждая «проблема» помечается как неклассифицированная, но вы можете пометить их как угодно, используя обычную метку проблемы.

При повторном запуске repo_tags.pyсоздает только проблемы для репо. это еще не было охвачено проблемой.

VonC
источник
4
Хорошо, поэтому я должен использовать много организаций ... есть ли причина, почему вы не можете структурировать свои повторения по папкам?
Данияр
4
@Sharethis нет причин, о которых я знаю, за исключением того, что это еще не функция, предложенная GitHub.
VonC
5
Список пожеланий; Теги тоже подойдут. github.com/isaacs/github/issues/302
AnneTheAgile
4
Вау, невероятно, что такой большой, хорошо разработанный, популярный сервис не поддерживает такую ​​базовую функцию, которая существовала всегда.
Майкл
1
@PeterByfield Это единственный официальный обходной путь, поэтому я буду придерживаться этого пока.
VonC
9

Я использую организации для организации репо. Это обеспечивает четкое разграничение и четкую организацию, готовую к обмену при необходимости. Например:

Мои организации

  • Jmr-iOS (репозитории iOS)
  • Jmr-Work (Рабочие репо)
  • Пользователь Acct (Pers repos)

Все репозитории организации являются общедоступными, если вы не перейдете на учетную запись Enterprise Cloud ($ 25 / мес.)

J-Dizzle
источник
1
Все репозитории организации являются общедоступными, даже если вы переходите на учетную запись разработчика. Итак, если вам нужно обновить план организации до уровня предприятия или команды (цена в настоящее время начинается с 25 евро в месяц и позволяет 5 разработчикам, или вы можете использовать предприятие с 21 доллара на каждого пользователя в месяц)
Curious Mind
хороший улов! Я обновил, чтобы отразить текущую схему, я использую это сейчас
J-Dizzle
4

Это не столько ответ, сколько хедз-ап.

Один недавний побочный эффект структурирования организаций-утилизаторов обнаружился из-за следующего объявления о бесплатных частных репозиториях для пользователей: https://blog.github.com/2019-01-07-new-year-new-github/

Организация частных репо еще не бесплатна. Поэтому использование организаций для разделения репо приведет к тому, что ваша организация не сможет использовать бесплатные частные репозитории, если вам это нужно.

Майкл Грегуар
источник
2

Для начала, вы можете пометить репо сейчас в GitHub в виде тем. Ура!

Но я не думаю, что это решает большую проблему. Для этого я попробовал систему папок верхнего уровня (где каждый проект представляет собой папку в одном репо). Я также попробовал одну ветку на систему проектов (где каждый проект находится в новой ветке). Этот последний позволяет вам тянуть и толкать каждый проект в отдельности! Но ни один не идеален.

Вы также можете посмотреть другие системы контроля версий, такие как Subversion и Mercurial . Mercurial также может быть размещен на Bitbucket, если вам нужно, и Facebook даже ищет поддержку « многопроектных репозиториев ».

Мне лично нравится система https://hg.openjdk.java.net/ (или http://hg.netbeans.org/ ), где у вас есть настройка папки, и каждый проект размещается на конечных точках. Лучший способ добиться этого - создать веб-сайт (который вы можете сделать в GitHub) со структурой вашего проекта (например, https://mvnrepository.com/ или https://www.npmjs.com/ ).

gagarwa
источник
2

Один из возможных способов имитации папок - добавление разделенных запятыми тегов в конце описания репо. Затем вы можете искать репо по этим тегам, поскольку фильтр GitHub «Найти репозиторий ...» выглядит в описании репо! Пример:

MyRepo: делает что-то классное [компьютерное зрение, машинное обучение, питон]

peter554
источник