web-dev-qa-db-ja.com

GitHubから単一のファイルをダウンロード

私はあなた、開発者のほとんどがany _ vcs _ を使っていると思います、そしてあなたの何人かがGitを使ってほしいと思います。リポジトリ内の単一ファイルのダウンロードURLを取得するためのヒントやテクニックはありますか。

生ファイルを表示するためのURLは必要ありません。バイナリの場合は無駄です。

http://support.github.com/discussions/feature-requests/41-download-single-file

GitHubを「ダウンロードサーバー」として使うことさえ可能ですか?

Google Codeに切り替えることにした場合、ここで紹介した機能は表示されますか。

それともオープンソースプロジェクトのための無料ホスティングとVCSはありますか?

491
Radek Simko

Gitはリポジトリの一部のダウンロードをサポートしていません。全部ダウンロードする必要があります。しかし、GitHubでもこれが可能になるはずです。

あなたがファイルを見るとき、それは「生の」バージョンへのリンクを持っています。 _ url _ は次のように構成されています。

https://raw.githubusercontent.com/user/repository/branch/filename

URLの空白を埋めることで、 Wget または cURL-Lオプション付き、下記参照)を使用することも、単一のファイルをダウンロードするために何でも使用することもできます。繰り返しますが、これを実行してもGitで使用されているNiceバージョン管理機能は使用できません。

更新:私はあなたがこれがバイナリーファイルのために働かないと言ったのに気づいた。 Gitリポジトリではおそらくバイナリファイルを使うべきではありませんが、GitHubには各リポジトリごとにファイルのアップロードに使用できるダウンロードセクションがあります。複数のバイナリが必要な場合は、.Zipファイルを使用できます。アップロードされたファイルをダウンロードするためのURLは以下のとおりです。

https://github.com/downloads/user/repository/filename

github.comのリンクからの上記のURLは、raw.githubusercontent.comにリダイレクトされます。このHTTP 302リダイレクトによって与えられたURLを直接使うべきではありません。なぜなら、 RFC 2616 あたり: "リダイレクトは時々変更されるかもしれないので、クライアントは将来の要求にRequest-URIを使い続けるべきである"。

488
jonescb
  1. ダウンロードしたいファイルに移動します。
  2. それをクリックしてGitHub UI内のコンテンツを表示します。
  3. 右上の 右クリック Rawボタン。
  4. 名前を付けて保存...
458
bearfriend

あなたはこのような生のファイルを得るためにV3 APIを使うことができます(あなたはOAuthトークンを必要とするでしょう):

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

これらすべては一行で行かなければなりません。 -Oオプションは、ファイルを現在のディレクトリに保存します。別のファイル名を指定するために-o filenameを使うことができます。

OAuthトークンを取得するには、次の手順に従ってください。 https://help.github.com/articles/creating-an-access-token-for-command-line-use

私はこれも要旨として書きました: https://Gist.github.com/madrobby/9476733

33
thomasfuchs

this Gist によると、wgetまたはcURLを使うことができます。

  1. GitHubリポジトリのファイル名をクリックします。
  2. Rawをクリックしてファイルの内容を表示します。
  3. ブラウザのURLをコピーしてください。
  4. コマンドラインで、次のいずれかを実行します。
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
15
Ted Cox

GitHub Mate は単一ファイルのダウンロードを簡単にします。ダウンロードするにはアイコンをクリックするだけです。現在はChromeでしか動作しません。

GitHub Mate Download

14
Cam Song

これはGitHubで任意のファイルに対して可能になりました。あなたはraw.github.comのためにあなたのファイルを翻訳する必要があります。たとえば、ファイルがリポジトリの次の場所にあるとします。

https://github.com/<username>/<repo>/some_directory/file.rb

Wgetを使うと、生ファイルを次の場所から入手できます。

https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb

Rails Composer はその好例です。

12
Joe Leo

Thomasfuchsが言ったことをフォローアップするために、代わりにGitHub Enterpriseユーザーのためにここにあなたが使うことができるものがあります。

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

また、これはAPIドキュメントです https://developer.github.com/v3/repos/contents

10
Drew Michel

このようにcurlを使うことができます:

curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file

Oはcurlがコンテンツをダウンロードすることを意味します
Lは、カールがリダイレクトに従うことを意味します

10
Mark

githubを使ってwgetからZipファイルをダウンロードしたい場合

wget -O filename.Zip https://github.com/downloads/user/repository/filename.zip?raw=true

詳しくは ウェブサイト をご覧ください。

8
DJJ

Enhanced Github というクロムの拡張子があります。

各ファイルの右側にダウンロードボタンが直接追加されます。

enter image description here

あなたのファイルのraw URLでそれをやるべきです。

たとえばAFNetworkingのREADMEをダウンロードするには、次のようにします。

curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md 

それは公共の場であるのであなたはどんな資格も必要としません。 URLの種類に注意してください。raw.githubusercontent.com/path/to/file

4
Kevin Delord

私はこれまでにMACを使ったことがないので、このメソッドはWindowsで動作します。そのため、次に説明するキーのMACの代替キーが何であるかわかりません。

CSVファイルについて話しましょう。 CSVファイルをダウンロードしたい場合は、

  1. ダウンロードしたい特定のデータセットに移動してクリックします。
  2. データセットの右上に[Raw]ボタンが表示されます。
  3. "Alt"を押してから "Raw"ボタンを左クリックしてください。
  4. CSV全体がシステムにダウンロードされます。

覚えておいて、あなたはAltキーを押しながら同時に左クリックする必要があります。 「Raw」ボタンをクリックするだけで、ブラウザにCSVが表示されます。

それが役立つことを願っています。

4
saadi123

リポジトリ内の特定のファイルをダウンロードするためにリンクするのではなく、GitHubの Releases 機能を使用してダウンロード可能なデータ(コンパイル済みバイナリなど)をそのデータの生成に使用したタグ付きバージョンのソースコードに関連付けます。

https://github.com/blog/1547-release-your-software

ソフトウェアをエンドユーザーに出荷するためのワークフローであるReleasesを発表できることを楽しみにしています。リリースは、Git成果物を超えた完全なプロジェクト履歴を示す、変更ログとバイナリー資産を持つ一流のオブジェクトです。

リリースには、リリースノートとソフトウェアまたはソースコードをダウンロードするためのリンクが付いています。

多くのGitプロジェクトの規約に従って、リリースはGitタグに結び付けられています。既存のタグを使用することも、公開時にリリースにタグを作成させることもできます。

enter image description here

3
pkamb

これは間違いなくうまくいきます。少なくともChromeでは。 「Raw」アイコンを右クリックして - > Save Link As をクリックします。

3
Ankish Jain

私は最近gitzipというサービスとそのオープンソースを見つけました。

サイト - http://kinolien.github.io/gitzip/

レポ - https://github.com/KinoLien/gitzip

上記のサイトにアクセスし、リポジトリまたはディレクトリのURLを入力して、個々のファイルまたはディレクトリ全体をZipファイルとしてダウンロードできます。

2
avi
  1. あなたがリンクしたページは最初の質問に答えます。

  2. GitHubには、リリースなどのダウンロード機能もあります。

  3. Google CodeGit はまったくありません。

  4. GitHub、Google Code、および SourceForge は、はじめは無料のホスティングサービスです。 SourceForgeはまだ _ cvs _ をするかもしれません。

2
bmargulies

これで、このGoogle Chrome拡張機能を使用して、リポジトリ内の任意のファイルまたは特定のフォルダをダウンロードすることができます。

Github用GitZip: link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

使用法 :

  1. どのGitHub公開リポジトリページでも。
  2. 必要なアイテムをダブルクリックするだけです。
  3. 右下のダウンロードボタンをクリックしてください。
  4. 進行状況ダッシュボードを参照して、ブラウザのトリガーのダウンロードを待ちます。
  5. Zipファイルを入手してください。

enter image description here

enter image description here

1
Natesh bhat

Githubリポジトリからファイルをダウンロードするには、rawファイルへのリンクを付けて 'curl'コマンドを使用します。

curl https://raw.githubusercontent.com/user/repo/filename --output filename

--outputオプションに続けて新しいファイル名を追加して、生ファイルを新しく作成したファイルにダウンロードします。

1
George

私は新しいurl構造はraw.giturlだと思います:

gitファイル

1
fsmart

たまたまcurlとfirefoxを使っているのであれば... cliget add-onを使って、すべての認証メカニズム(別名cookie)を含むcurlコールを生成することができます。

それでrawボタンcliget - > "リンクのURLをコピー"を右クリックし、それをシェルに貼り付けます。あなたがそれを見るためにログインしなければならなかったとしてもあなたはあなたのファイルを手に入れるでしょう。

1
estani

github-files-fetcher を試すことができます。これは、GitHubリポジトリから単一のフォルダまたはファイルをダウンロードするコマンドラインツールです。

本当のシナリオを考えてみてください。次のWebページのページにアクセスして、asyncサブディレクトリだけをダウンロードしたいのです。

https://github.com/reduxjs/redux/tree/master/examples

画像の投稿を許可されていないのが残念。

The github-files-fetcherでは、最初にそのページのurl、つまり https://github.com/reduxjs/redux/tree/master/examples/async をコピーしてから、コマンドラインで以下のコマンドを実行します。

fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async

0
Gyumeijie

私は以下のフォーマットを使用しました、そして私はそれがパスについて知らせることが重要であると感じます。

https://github.com/user/repository/raw/branch/filename

^^^上記は私の考えでは完全ではありません

https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true

raw.github.comまたはblobではなくrawと言う人もいますが、2行目が私のために機能します。他の人が役立つことを願っています...

0
rezwits

GitHub Enterpriseをご利用の場合は、次のスキームでURLを作成する必要があります。

Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}

詳細はこちら

http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html

0
  1. Zipファイルをダウンロードする
  2. ファイルを解凍する
0
Evan Gertis

またはこれを試してください

const https = require('https');
const fs = require('fs');
const DOMAIN = 'raw.githubusercontent.com';

function writeFile(data, fileName) {
  fs.appendFile(fileName, data.toString(), err => {
    if (err) {
      console.log('error in writing file', err);
    }
  });
}

function EOF(data) {
  console.log('EOF');
}

function getFileName(pathToFile) {
  var result = pathToFile.split('/');
  var splitLength = result.length;
  return result[splitLength - 1];
}
function getFile(branchName, username, repoName, ...pathToFile) {
  pathToFile.forEach(item => {
    const path = `/${username}/${repoName}/${branchName}/${item}`;
    const URL = `${DOMAIN}${path}`;
    const options = {
      hostname: DOMAIN,
      path: path
    };
    var fileName = getFileName(item);

    https
      .get(options, function(res) {
        console.log(res.statusCode);
        /* if file not found */
        if (res.statusCode === 404) {
          console.log('FILE NOT FOUND');
        } else {
          /* if file found */
          res.on('data', data => writeFile(data, fileName));
          res.on('end', data => EOF(data));
        }
      })
      .on('error', function(res) {
        console.log('error in reading URL');
      });
  });
}
getFile('master', 'bansalAyush', 'InstagramClone', '.babelrc', 'README.md');
0
Ayush Bansal