gitgithubrepository

Can I arrange repositories into folders on Github?


I am new to git and what I am doing now is to upload all my recent projects as repositories to github. There are a lot of different projects like webdesign, wordpress themes and different types of applications. And some of these also belong to bigger projects because they were about testing some stuff as a different application.

The problem is that I have a confusing amount of repositories online now. How can I group related github repositories in a folder structure? Is there a feature providing any ability to order and structure or even tag repositories on github?


Solution

  • Update Dec. 2023: it's happening! (kind of)

    New Organization Repositories List Feature Preview (Dec. 2023)

    In October, we launched the beta of Repository Custom Properties, enabling you to attach key-value pairs to repositories in your organizations.
    Among many scenarios, one of the key components we had envisioned was the ability to filter your repository properties.
    Making it easier to find exactly the set of repositories you were looking for.

    Starting today, you can enable a new list view for repositories.
    This update improves accessibility and performance and introduces a new filter bar supporting properties.

    To enable select New organization repositories view option in the feature preview dialog.

    https://github.com/github/release-assets/assets/185122/916a97b9-1493-411f-8fa3-a22dab221e90 -- PNG Custom Properties Feature Preview.

    Learn more about managing customer properties for your organization and managing rulesets for your organization.

    Head over to the community discussions to share your feedback.


    Update Sept. 2023: the same GitHub Community Issue #4174: "Support repository categories" adds from the Customer Support:

    Guy (GitHub Support)
    Sep 15, 2023, 11:04AM UTC

    Hi Tom:

    I understand, I've added your comments about the lack of this feature being a blocker for your org to our internal customer feedback tracker.

    Requests for It have been made by some quite large Enterprise orgs since at least 2014, and the Product Managers have never been persuaded to implement It, so I don't think it's likely they will change their minds any time soon, unfortunately.

    Cheers,
    Guy

    So no project folder structure for now (2023).


    Update Dec. 2021:

    Lists are now available as a public beta

    Lists level up the starring experience by making it easy to organize and curate your favorite repositories on GitHub.

    You can create public lists that appear on your stars page at https://github.com/USERNAME?tab=stars.

    Lists are available to everyone except enterprise managed users.

    https://i0.wp.com/user-images.githubusercontent.com/6895176/145467599-0b91cecd-872e-4ca1-bc86-16df076da29d.png?ssl=1

    However (June 2022), as illustrated by Wyck in GitHub Community Issue #4174: Support repository categories, the presentation is still lacking:

    if I click the topic button, it shows me a list of all public repos marked with that same topic keyword.
    Instead, I'd prefer if there was a way to view only repos within my organization marked with that topic.

    I'd also like to see a top-level list of all topic that have been marked on any repos within my private organization, to serve as a top-level directory or table-of-contents of repos in my organization.


    Original answer:

    On GitHub itself, you cannot group your repos by "folder", unless you create organizations.
    See SublimeText, for instance, as a group of all sublimeText packages repos.

    But that won't support a nested folder organization. For now (June 2017), that only supports a nested team organization structure.


    Update Aug. 2020: the README project allows you to add a profile page... in which you can list and organize your repositories any way you want. But that is a manual process (editing the page).


    Update February 2019: you now have the concept of project:
    See "User owned projects—your personal workspace "

    You can also link up to 5 repositories to your project board. Linking repositories will limit the scope of the search to those linked repositories, so you can quickly narrow down any new issues you haven’t yet added to the project board

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

    GitHub also supports tags now (in the form of topics).


    Original answers 2012:

    Another solution is for you to define repositories which reference other repos, declared as submodules.

    That way, when you are cloning one of the repos (which references other repos), called "parent repos", they will be cloned in their own directory, with a sub-directory per submodules.

    It won't be visually apparent on your GitHub account itself (as it will still contains a large list of repos, even larger with the parent repos), but by cloning one parent repo, you will get back all its associated submodules in it.


    The issue 302 mentioned in the comments by AnneTheAgile in 2014 just references now (Nov. 2018) tbnorth/github_repo_tags

    The small python program in this repository uses the GitHub API to get a list of your repos. and add their name, description, and URL, to a new repo., by default called repo_tags. Initially each “issue” is tagged unclassified, but you can tag them as you please, using regular issue tagging.

    When re-run, repo_tags.py only creates issues for repos. that weren't already covered by an issue.