it-swarm.com.de

Laden Sie einzelne Dateien von GitHub herunter

Ich nehme an, die meisten von Ihnen, die Entwickler, verwenden alle VCS , und ich hoffe, einige von Ihnen verwenden Git. Haben Sie einen Tipp oder einen Trick, wie Sie eine Download-URL für eine einzelne Datei in einem Repository erhalten?

Ich möchte nicht, dass die URL zum Anzeigen der Rohdatei verwendet wird. Im Falle von Binärdateien ist es umsonst.

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

Kann man GitHub überhaupt als "Download-Server" nutzen?

Wenn wir uns entscheiden, zu Google Code zu wechseln, wird die hier erwähnte Funktionalität hier angezeigt?

Oder gibt es ein kostenloses Hosting und VCS für Open Source-Projekte?

471
Radek Simko

Git unterstützt das Herunterladen von Teilen des Repositorys nicht. Sie müssen alles herunterladen. Dies sollte jedoch mit GitHub möglich sein.

Wenn Sie eine Datei anzeigen, hat sie einen Link zur "Rohversion". Die URL ist so aufgebaut

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

Durch das Ausfüllen der Leerzeichen in der URL können Sie Wget oder cURL (mit der -L-Option, siehe unten) oder was auch immer zum Herunterladen einer einzelnen Datei verwenden. Auch hier erhalten Sie keine der von Git verwendeten Versionskontrollfunktionen von Nice.

Update: Ich habe bemerkt, dass Sie erwähnen, dass dies bei Binärdateien nicht funktioniert. Sie sollten wahrscheinlich keine Binärdateien in Ihrem Git-Repository verwenden, aber GitHub hat einen Download-Bereich für jedes Repository, das Sie zum Hochladen von Dateien verwenden können. Wenn Sie mehr als eine Binärdatei benötigen, können Sie eine ZIP-Datei verwenden. Die URL zum Herunterladen einer hochgeladenen Datei lautet:

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

Beachten Sie, dass die oben angegebenen URLs von den Links auf github.com zu raw.githubusercontent.com weitergeleitet werden. Sie sollten die durch diese HTTP-302-Weiterleitung angegebene URL nicht direkt verwenden, da per RFC 2616 : "Da die Weiterleitung gelegentlich geändert wird, SOLLTE der Client den Request-URI für zukünftige Anforderungen weiterhin verwenden."

473
jonescb
  1. Gehen Sie zu der Datei, die Sie herunterladen möchten.
  2. Klicken Sie darauf, um den Inhalt der GitHub-Benutzeroberfläche anzuzeigen.
  3. Rechts oben Rechtsklick die Raw-Taste.
  4. Speichern als...
441
bearfriend

Sie können die V3-API verwenden, um eine Rohdatei wie diese zu erhalten (Sie benötigen ein OAuth Token):

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

All dies muss in einer Zeile erfolgen. Das -O Option speichert die Datei im aktuellen Verzeichnis. Sie können -o filename, um einen anderen Dateinamen anzugeben.

Um das OAuth zu erhalten, folgen Sie den Anweisungen hier: https://help.github.com/articles/creating-an-access-token-for-command-line-use

Ich habe dies auch als Gist geschrieben: https://Gist.github.com/madrobby/94767

37
thomasfuchs

GitHub Mate Ermöglicht das Herunterladen einzelner Dateien. Klicken Sie einfach auf das Symbol, um es herunterzuladen. Derzeit funktioniert es nur in Chrome.

GitHub Mate Download

14
Cam Song

Gemäß this Gist können Sie wget oder cURL verwenden: 

  1. Klicken Sie in einem GitHub-Repo auf den Dateinamen.
  2. Klicken Sie auf Raw, um den Inhalt der Datei anzuzeigen.
  3. Kopieren Sie die URL in Ihren Browser.
  4. Führen Sie in der Befehlszeile Folgendes aus:
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
13
Ted Cox

Dies ist jetzt in GitHub für jede Datei möglich. Sie müssen Ihre Dateien für raw.github.com übersetzen. Wenn sich Ihre Datei beispielsweise in Ihrem Repository befindet:

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

Mit wget können Sie die RAW-Datei von:

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

Rails Composer ist ein hervorragendes Beispiel dafür.

11
Joe Leo

Um zu verfolgen, was thomasfuchs gesagt hat, aber für GitHub Enterprise-Benutzer, können Sie Folgendes verwenden.

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

Hier ist auch die API-Dokumentation https://developer.github.com/v3/repos/contents

9
Drew Michel

Sie können curl folgendermaßen verwenden:

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

O bedeutet, dass curl den Inhalt herunterlädt
L bedeutet, dass curl der Umleitung folgt

8
Mark

Wenn Sie eine ZIP-Datei von github mit wget herunterladen

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

weitere Informationen finden Sie auf dieser website

7
DJJ

Es gibt eine Chrome-Erweiterung namens Enhanced Github

Es wird eine Download-Schaltfläche direkt rechts von jeder Datei hinzugefügt.

 enter image description here

Sie sollten dies nur mit der raw-URL Ihrer Datei tun.

Zum Herunterladen des README von AFNetworking:

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

Da es sich um ein öffentliches Repo handelt, benötigen Sie keine Anmeldeinformationen. Bitte beachten Sie die Art der URL: raw.githubusercontent.com/path/to/file

4
Kevin Delord

Diese Methode funktioniert für Windows, da ich noch nie MAC verwendet habe. Daher weiß ich nicht, welche alternativen Tasten in MAC für die Tasten verwendet werden, die ich unten erwähnen möchte. 

Sprechen wir über die CSV-Dateien. WENN Sie die CSV-Datei herunterladen möchten:

  1. Gehen Sie zu dem betreffenden Datensatz, den Sie herunterladen möchten, und klicken Sie darauf.
  2. Die Schaltfläche "Raw" wird oben rechts im Datensatz angezeigt.
  3. Drücken Sie "Alt" und klicken Sie mit der linken Maustaste auf die Schaltfläche "Raw".
  4. Die gesamte CSV wird in Ihr System heruntergeladen.

Denken Sie daran, dass Sie gleichzeitig Alt und Linksklick drücken müssen. Durch Klicken auf die Schaltfläche "Raw" wird der CSV im Browser geöffnet.

Ich hoffe das hilft.

4
saadi123

Das würde definitiv funktionieren. Zumindest in Chrome. Klicken Sie mit der rechten Maustaste auf das Symbol "Raw" -> Verknüpfung speichern unter .

3
Ankish Jain

Anstatt einen Link zum Herunterladen einer bestimmten Datei innerhalb des Repos zu erstellen, sollten Sie die Releases - Funktion von GitHub verwenden, um herunterladbare Daten (z. B. kompilierte Binärdateien) mit der gekennzeichneten Version des Quellcodes zu verknüpfen, der zum Generieren dieser Daten verwendet wird. 

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

Wir freuen uns, Releases, einen Workflow für den Versand von Software an Endbenutzer, bekannt zu geben. Releases sind erstklassige Objekte mit Änderungsprotokollen und binären Assets, die einen vollständigen Projektverlauf über Git-Artefakte hinaus darstellen.

Die Releases werden von Release-Informationen und Links zum Herunterladen der Software oder des Quellcodes begleitet.

Entsprechend den Konventionen vieler Git-Projekte sind Releases an Git-Tags gebunden. Sie können ein vorhandenes Tag verwenden oder lassen Releases das Tag erstellen, wenn es veröffentlicht wird.

 enter image description here

2
pkamb

Ich habe kürzlich einen Dienst namens gitzip gefunden, der ebenfalls Open Source ist:

site - http://kinolien.github.io/gitzip/

repo - https://github.com/KinoLien/gitzip

Besuchen Sie die obige Site, geben Sie die Repo- oder Verzeichnis-URL ein, und Sie können einzelne Dateien oder ganze Verzeichnisse als Zip-Datei herunterladen.

2
avi
  1. Die von Ihnen verlinkte Seite beantwortet die erste Frage.

  2. GitHub hat auch eine Download-Funktion für Veröffentlichungen.

  3. Google Code hat überhaupt keine Git .

  4. GitHub, Google Code und SourceForge sind nur ein kostenloses Hosting. SourceForge macht möglicherweise noch CVS .

2
bmargulies

Jetzt können Sie mit dieser Google Chrome-Erweiterung eine beliebige Datei oder einen bestimmten Ordner im Repository herunterladen:

GitZip für github:link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

Verwendungszweck :

  1. In jeder öffentlichen GitHub-Reposeite.
  2. Doppelklicken Sie einfach auf die gewünschten Artikel.
  3. Klicken Sie unten rechts auf Download.
  4. Sehen Sie sich das Fortschrittsdashboard an und warten Sie auf den Download des Browser-Triggers.
  5. Holen Sie sich die Zip-Datei.

 enter image description here

 enter image description here

1
Natesh bhat

Um eine Datei von einem Github-Repo herunterzuladen, verwenden Sie den Befehl 'curl' mit dem Link zur Rohdatei. 

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

Fügen Sie die Option --output gefolgt vom neuen Dateinamen hinzu, um die Rohdatei in die neu erstellte Datei herunterzuladen.

1
George

Ich denke, die neue url Struktur ist raw.giturl zum Beispiel:

git Datei

roh

1
fsmart

Wenn Sie curl und firefox verwenden, können Sie das cliget add-on verwenden, das einen Curl-Aufruf erzeugt, der alle Authentifizierungsmechanismen (auch Cookies) enthält. 

Klicken Sie mit der rechten Maustaste auf die Schaltfläche raw cliget -> "URL für Link kopieren" und fügen Sie diese in eine Shell ein. Sie erhalten Ihre Datei auch dann, wenn Sie sich anmelden müssen, um sie zu sehen.

1
estani

Sie können versuchen, github-files-fetcher , ein Befehlszeilentool, das einen einzelnen Ordner oder eine einzelne Datei von einem GitHub-Repo herunterlädt.

Stellen Sie sich ein reales Szenario vor: Sie haben die folgende Webseite besucht und möchten das async-Unterverzeichnis allein herunterladen.

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

entschuldigung, dass ich keine Bilder posten darf.

Mit The github-files-fetcher sollten Sie zuerst die url dieser Seite kopieren. Dies ist https://github.com/reduxjs/redux/tree/master/examples/async und dann den folgenden Befehl in der Befehlszeile ausführen:

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

0
Gyumeijie

Ich habe das folgende Format verwendet, und es ist mir wichtig, Informationen über den Pfad zu erhalten.

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

^^^ das oben Genannte ist meiner Meinung nach nicht sehr vollständig

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

einige sagten raw.github.com oder raw statt Blob, aber die 2. Zeile funktioniert für mich und ich hoffe, dass ich anderen helfen kann ...

2 ¢

0
rezwits

Für Benutzer mit GitHub Enterprise müssen Sie die URL nach folgendem Schema erstellen 

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

Details finden Sie hier

http://artisticcheese.blogspot.com/2017/04/wie-nach-download-individuelle-files-von.html

0
  1. Zip-Datei herunterladen
  2. Extrahieren Sie die Datei
  3. Extract the file
0
Evan Gertis

Oder probiere es aus 

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