Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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!

like image 755
Ali Shakiba Avatar asked Sep 01 '15 20:09

Ali Shakiba


2 Answers

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.

like image 183
mayo Avatar answered Sep 29 '22 11:09

mayo


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
    
like image 35
das-g Avatar answered Sep 29 '22 12:09

das-g