Ali Shakiba
Ali Shakiba

Reputation: 1374

Download a specific branch of a github project

To cut the story short, to run a convolutional neural network model, I need an special version of nolearn, which has a url of the form https://github.com/dnouri/nolearn/tree/1659e4811e498dc1f442d8e6486d0831f85255b4/nolearn . However, there are no Download as Zip buttons at the page, nor I can download it with

git clone https://github.com/dnouri/nolearn -branch 1659e4811e498dc1f442d8e6486d0831f85255b4/nolearn

Simply,

git clone https://github.com/dnouri/nolearn/tree/1659e4811e498dc1f442d8e6486d0831f85255b4/nolearn

does not work, too.

Even, I have no idea what should I search for in Google!

Note: This is the last version which provided support for the class Objective, i.e. the command from lasagne.objectives import Objective is no more supported!

Upvotes: 20

Views: 80310

Answers (5)

Anoop M Maddasseri
Anoop M Maddasseri

Reputation: 10549

You can download a snapshot of any branch, tag, or specific commit from GitHub.com. Source code archives are available at specific URLs for each repository. For example, consider the repository github/codeql There are different URLs for downloading a branch, a tag, or a specific commit ID.

Branch - main - https://github.com/github/codeql/archive/refs/heads/main.tar.gz

Tag - codeql-cli/v2.12.0 - https://github.com/github/codeql/archive/refs/tags/codeql-cli/v2.12.0.zip

Commit - aef66c4 -https://github.com/github/codeql/archive/aef66c462abe817e33aad91d97aa782a1e2ad2c7.zip

Patch - https://github.com/repo/codeql/pull/pull-id.patch

You can use either .zip or .tar.gz in the URLs above to request a zipball or tarball respectively.

Upvotes: 0

illuminato
illuminato

Reputation: 1257

The solution for zip that would work for any repo and branch:

https://github.com/<username>/<repository>/archive/<branch>.zip

Upvotes: 4

das-g
das-g

Reputation: 9994

Other than in Subversion (SVN), git has separate namespaces for directories (file system folders), branches and tags. Thus https://github.com/dnouri/nolearn/tree/1659e4811e498dc1f442d8e6486d0831f85255b4/nolearn is not, per se, a branch. 1659e4811e498dc1f442d8e6486d0831f85255b4 is a commit ID, used here to refer to the revision created by the commit. dnouri/nolearn is the repository name on GitHub (repository nolearn on account dnouri) and the final nolearn in the URL is a directory within the content of revision 1659e4811e498dc1f442d8e6486d0831f85255b4.

The 'normal' way to get this code with git would be:

  1. replicate the repository to your local machine

    git clone https://github.com/dnouri/nolearn.git
    

    (You can find this URL on the repository's page https://github.com/dnouri/nolearn, in the 'clone URL' field.)

  2. enter the local repository

    cd nolearn
    
  3. check out the wanted revision

    git checkout 1659e4811e498dc1f442d8e6486d0831f85255b4
    
  4. change into the respective directory inside the repository

    cd nolearn
    

Upvotes: 13

mayo
mayo

Reputation: 4075

This can help you:

How to clone a single branch in git?

Where specifies:

git clone <url> --branch <branch> --single-branch [<folder>]

Docu :

Git Clone

--[no-]single-branch

Clone only the history leading to the tip of a single branch, either specified by the --branch option or the primary branch remote’s HEAD points at. When creating a shallow clone with the --depth option, this is the default, unless --no-single-branch is given to fetch the histories near the tips of all branches. Further fetches into the resulting repository will only update the remote-tracking branch for the branch this option was used for the initial cloning. If the HEAD at the remote did not point at any branch when --single-branch clone was made, no remote-tracking branch is created.

Upvotes: 48

Related Questions