Télécharger des fichiers uniques de GitHub

Je suppose que la plupart d'entre vous, développeurs, utilisez VCS, et j'espère que certains d'entre vous l'utilisation de Git. Avez-vous un conseil ou une astuce pour obtenir une URL de téléchargement pour un seul fichier dans un référentiel?

Je ne veux pas l'URL pour afficher le fichier raw; dans le cas de binaires, c'est pour rien.

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

Est-il même possible d'utiliser GitHub comme un "serveur de téléchargement"?

Si nous décidons de passer à Google Code, la fonctionnalité mentionnée est-elle présentée ici?

Ou Existe-t-il un hébergement et un VCS gratuits pour les projets open-source?

437
demandé sur Arslan Ali 2011-01-05 16:41:15

26 réponses

Git ne prend pas en charge le téléchargement de parties du référentiel. Vous devez télécharger tout cela. Mais vous devriez être capable de le faire avec GitHub.

Lorsque vous affichez un fichier, il a un lien vers la version "raw". L'URL est construite comme ceci

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

En remplissant les blancs dans L'URL, vous pouvez utiliser Wget ou cURL (avec l'option -L, Voir ci-dessous) ou autre pour télécharger un seul fichier. Encore une fois, vous n'obtiendrez aucune des fonctionnalités de contrôle de version utilisées par Git en faisant cela.

Mise à jour: j'ai remarqué que vous mentionnez que cela ne fonctionne pas pour les fichiers binaires. Vous ne devriez probablement pas utiliser de fichiers binaires dans votre dépôt Git, mais GitHub a une section de téléchargement pour chaque dépôt que vous pouvez utiliser pour télécharger des fichiers. Si vous avez besoin de plus d'un binaire, vous pouvez utiliser un .fichier zip. L'URL pour télécharger un fichier téléchargé est:

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

Notez que les URL données ci-dessus, à partir des liens sur github.com, redirigeront vers raw.githubusercontent.com. Vous ne devriez pas utiliser directement L'URL donnée par ceci Redirection HTTP 302 Car, selon RFC 2616 : "étant donné que la redirection peut être modifiée à l'occasion, le client doit continuer à utiliser L'URI de requête pour les requêtes futures."

440
répondu jonescb 2018-03-21 06:31:47
  1. Accédez au fichier que vous souhaitez télécharger.
  2. Cliquez dessus pour afficher le contenu de L'interface utilisateur GitHub.
  3. En haut à droite, cliquez-droit sur le Raw bouton.
  4. Enregistrer sous...
410
répondu bearfriend 2016-03-16 22:12:48

Vous pouvez utiliser L'API V3 pour obtenir un fichier raw comme celui-ci (vous aurez besoin d'un jeton OAuth):

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

Tout cela doit aller sur une ligne. L'option -O enregistre le fichier dans le répertoire courant. Vous pouvez utiliser -o filename pour spécifier un nom de fichier différent.

Pour obtenir le jeton OAuth suivez les instructions ici: https://help.github.com/articles/creating-an-access-token-for-command-line-use

J'ai écrit ceci comme un essentiel comme Bien: https://gist.github.com/madrobby/9476733

28
répondu thomasfuchs 2014-03-11 00:44:54

Aller à DownGit - Entrez Votre URL de Téléchargement!

Spécialement adapté pour gros fichiers


Télécharger avec DownGit


Vous pouvez télécharger des fichiers et des répertoires individuels en zip. Vous pouvez également créer un lien de téléchargement, et même donner un nom au fichier zip. Utilisation détaillée - ici .

20
répondu Minhas Kamal 2018-01-09 05:16:27

Github Mate rend le téléchargement de fichier unique sans effort, il suffit de cliquer sur l'icône pour télécharger, actuellement, il ne fonctionne que sur Chrome.

Github Mate Télécharger

13
répondu Cam Song 2013-12-17 05:52:23

Ceci est maintenant possible dans GitHub pour n'importe quel fichier. Vous devez traduire vos fichiers pour raw.github.com. par exemple, si votre fichier se trouve dans votre référentiel à:

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

En utilisant wget, vous pouvez récupérer le fichier raw à partir de:

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

Rails Composer en est un excellent exemple.

11
répondu Joe Leo 2013-08-09 20:33:03

Pour suivre ce que thomasfuchs a dit mais pour les utilisateurs de GitHub Enterprise, voici ce que vous pouvez utiliser.

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

Voici aussi la documentation de L'API https://developer.github.com/v3/repos/contents

9
répondu Drew Michel 2016-09-21 19:05:31

Selon cet essentiel , Vous pouvez utiliser wget ou cURL:

  1. Cliquez sur le nom du fichier dans un dépôt GitHub.
  2. Cliquez sur Raw pour afficher le fichier contenu.
  3. Copiez L'URL dans votre navigateur.
  4. Dans la ligne de commande, exécutez:
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
9
répondu Ted Cox 2017-08-04 19:29:01

Dans le cas où vous souhaitez télécharger un fichier zip à partir de github utiliser wget

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

Voir ce site pour plus de détails

7
répondu DJJ 2015-07-07 16:06:56

Cette méthode fonctionne pour Windows car je n'ai jamais utilisé MAC, donc je ne sais pas quelles sont les clés alternatives dans MAC pour les clés que je vais mentionner ci-dessous.

Parlons des fichiers CSV. Si vous voulez télécharger le fichier CSV:

  1. accédez à cet ensemble de données particulier que vous souhaitez télécharger et cliquez dessus.
  2. vous verrez le bouton " Raw " en haut à droite de l'ensemble de données.
  3. Appuyez sur "Alt", puis cliquez sur le bouton" Raw".
  4. l'ensemble du CSV Téléchargez dans votre système.

Remeber, vous devez appuyer sur Alt et clic gauche simultanément. Il suffit de cliquer sur le bouton" Raw " pour ouvrir le CSV dans le navigateur.

J'espère que cela aide.

4
répondu saadi123 2017-02-17 19:15:27

Vous devriez simplement le faire avec l'URL raw de votre fichier.

Par exemple pour télécharger le fichier README D'AFNetworking:

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

Comme il s'agit d'un repo public, vous n'avez pas besoin d'informations d'identification. Veuillez noter le type d'url: raw.githubusercontent.com/path/to/file

3
répondu Kevin Delord 2015-10-05 10:12:04

Vous pouvez utiliser curl de cette façon:

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

O signifie que curl télécharge le contenu
L signifie que curl suit la redirection

3
répondu Mark 2018-04-14 18:14:19
  1. La page que vous avez liée répond à la première question.

  2. GitHub dispose également d'une installation de téléchargement pour des choses comme les versions.

  3. Google Code n'est pas Git, à tous.

  4. GitHub, Google Code et SourceForge, juste pour commencer, sont d'hébergement gratuit. SourceForge peut toujours faire CVS .

2
répondu bmargulies 2015-02-20 23:08:30

Cela fonctionnerait certainement. Au moins dans google Chrome. Faites un clic droit sur L'icône" Raw " - > Enregistrer le lien sous .

2
répondu Ankish Jain 2016-04-23 14:00:17

J'ai récemment trouvé un service appelé gitzip et c'est aussi open source:

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

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

Vist le site ci-dessus, entrez le repo ou répertoire URL, vous pouvez télécharger des fichiers individuels ou répertoire entier comme un fichier zip.

2
répondu avi 2016-05-29 11:43:17

Je pense que le nouveau url la structure est raw.giturl par exemple:

Git fichier

Brut

1
répondu fsmart 2013-05-30 12:20:02

Si vous utilisez curl et firefox... vous pouvez utiliser l'add-oncliget qui génère un appel curl incluant tous les mécanismes d'authentification (alias cookies).

Faites donc un clic droit sur le bouton raw cliget->"copier l'url pour le lien", puis collez-le dans un shell. Vous obtiendrez votre fichier, même si vous aviez à vous de voir.

1
répondu estani 2014-09-26 08:21:47

Plutôt que de lier pour télécharger un fichier spécifique dans le repo, vous devez utiliser la fonctionnalité Releases de GitHub pour associer les données téléchargeables (telles que les binaires compilés) à la version étiquetée du code source utilisé pour générer ces données.

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

Nous sommes ravis d'annoncer les versions, un flux de travail pour l'expédition de logiciels aux utilisateurs finaux. Les versions sont des objets de première classe avec des changelogs et des actifs binaires qui présenter un historique complet du projet au-delà des artefacts Git.

Les versions

Sont accompagnées de notes de version et de liens pour télécharger le Logiciel ou le code source.

Suivant les conventions de nombreux projets Git, les versions sont liées aux balises Git. Vous pouvez utiliser une balise existante ou laisser les versions créer la balise lorsqu'elle est publiée.

entrez la description de l'image ici

1
répondu pkamb 2017-01-10 20:25:17

Pour télécharger un fichier à partir D'un dépôt Github, utilisez la commande 'curl' avec le lien vers le fichier raw.

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

Ajoutez l'option --output suivie du nouveau nom de fichier pour télécharger le fichier raw dans le fichier nouvellement créé.

1
répondu George 2017-10-11 18:13:19
  1. sur le côté droit juste en dessous de "Clone dans le bureau" il est dit "télécharger le fichier Zip"
  2. Télécharger Le Fichier Zip
  3. Extraire le fichier
0
répondu Evan Gertis 2016-09-21 19:04:21

Pour les utilisateurs avec GitHub Enterprise, vous devez construire L'URL dans le schéma suivant

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

Détails peuvent être trouvés ici

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

0
répondu Gregory Suvalian 2017-04-27 20:08:15

Ou essayez ceci

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
répondu Ayush Bansal 2018-03-13 05:58:36

J'ai utilisé le format suivant, et je pense qu'il est important d'informer sur le chemin.

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

^^^ci-dessus n'est pas très complet dans mon esprit

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

Certains ont dit raw.github.com ou raw au lieu de blob, mais la 2ème ligne fonctionne pour moi et j'espère aidera les autres...

0
répondu rezwits 2018-06-30 03:36:42

Vous pouvez essayer GitHub-files-fetcher , c'est un outil de ligne de commande qui télécharge un seul dossier ou fichier à partir d'un dépôt GitHub.

Pensez à un scénario réel: vous visitiez la page Web suivante et souhaitez télécharger le sous-répertoire async seul.

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

Désolé de ne pas avoir été autorisé à poster des images.

Avec github-files-fetcher, vous devez tout d'abord copier le url de cette page, qui est https://github.com/reduxjs/redux/tree/master/examples/async, puis exécutez la commande suivante en ligne de commande:

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

0
répondu Gyumeijie 2018-09-19 15:13:41

Maintenant, il est possible de télécharger n'importe quel fichier ou dossier particulier dans le référentiel en utilisant cette extension google chrome:

GitZip pour github : lien: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

Utilisation :

  1. dans n'importe quelle page de repos publique GitHub.
  2. Il suffit de double-cliquer sur les éléments dont vous avez besoin.
  3. cliquez sur le bouton Télécharger en bas à droite.
  4. Voir les progrès tableau de bord et attendez le téléchargement du déclencheur du navigateur.
  5. récupère le fichier ZIP.

entrez la description de l'image ici

entrez la description de l'image ici

-1
répondu Natesh bhat 2017-07-03 17:39:16

C'est ce qui a fonctionné pour moi tout à l'heure...

  1. Ouvrez le fichier raw dans un onglet séparé.

  2. Copie le tout dans votre bloc-notes dans un nouveau fichier.

  3. Enregistrez le fichier à l'extension, il avait à l'origine

...travaillé pour la .fichier php je DL tout à l'heure.

-2
répondu Guest 2016-09-21 19:04:07