Download specific files from github in command line, not clone the entire repo

前端 未结 5 972
灰色年华
灰色年华 2021-02-05 09:18

How do I download just 2 files from github using command line ?
Something in the lines of :

git fetch git://github.com/username/Project.git/file1
git fetch          


        
5条回答
  •  温柔的废话
    2021-02-05 10:06

    If you go to the page and view the links provided by "raw" (in the top left corner, when viewing the file). You will see, that you can access it by:

    https://github.com/username/repository/raw/$changeset_hash/path/to/file
    

    Instead of $changeset_hash you can also provide a branch (e.g. master) or tag.

    You can retrieve the raw file using something like wget.

    Accessing a single file directly from a .git-repository is not possible (as far as I know), because of how the data is stored.

    edit: When you want to access a file from a private repo, you first have to create an access token with the appropriate permissions in your account settings. Instead of calling the url above you can then use github's API to access the content of a file. Be sure to use the Accept-header for custom media types to get the raw data. This might look something like this:

    curl \
      -H 'Authorization: token $YOUR_TOKEN' \
      -H 'Accept: application/vnd.github.v3.raw' \
      -O \
      -L 'https://api.github.com/repos/:owner/:repo/contents/:path'
    

    The -O will save the contents in a local file with the same name as the remote file name. For easier use you can wrap it in a script. @Chris_Withers suggested an edit with a nice python snippet that unfortunately got rejected as to big of a change to the answer.

提交回复
热议问题