git export from github remote repository

Thanks to the Subversion support by GitHub, you can use svn export to get the project without any version control files:

svn export https://github.com/user/project/trunk

Notice the URL format:

  • The base URL is https://github.com/
  • USERNAME/PROJECTNAME without .git
  • /trunk appended at the end

This way you can get branches and subdirectories too.

This creates a directory with the exported files. It’s not possible to create a tar/zip directly, you have to do in two steps (export + zip). This is a limitation of svn export itself.

As @Jon pointed out, this will create the export in a directory named trunk by default. You can specify a different name if you prefer:

svn export https://github.com/username/projectname/trunk projectname

You can use this technique to export any sub-directory of the project.
For example if you want only some/path, you can do:

svn export https://github.com/username/projectname/trunk/some/path local-dir-name

You can get paths from branches and tags too. The endpoint https://github.com/username/projectname behaves fully as a Subversion repository with a regular layout, so you will find branches in https://github.com/username/projectname/branches and tags in https://github.com/username/projectname/tags.

Before you export something large by mistake, it’s good to check first the content of the path. You can do that using svn ls, for example:

svn ls https://github.com/username/projectname/

Normally this should give you:

branches/
tags/
trunk/

You could iteratively explore the repository this way.

Leave a Comment