Comment télécharger seulement 2 fichiers de github en ligne de commande?
Quelque chose dans les lignes de:
git fetch git://github.com/username/Project.git/file1
git fetch git://github.com/username/Project.git/file2
Si vous allez à la page et affichez les liens fournis par "raw" (en haut à gauche, lors de la visualisation du fichier). Vous verrez que vous pouvez y accéder par:
https://github.com/username/repository/raw/$changeset_hash/path/to/file
Au lieu de $changeset_hash
, vous pouvez également fournir une branche (principale, par exemple) ou une balise.
Vous pouvez récupérer le fichier brut en utilisant quelque chose comme wget.
L'accès à un seul fichier directement depuis un référentiel .git n'est pas possible (autant que je sache), en raison de la manière dont les données sont stockées.
edit: Lorsque vous souhaitez accéder à un fichier à partir d'un référentiel privé, vous devez d'abord créer un jeton d'accès avec les autorisations appropriées dans les paramètres de votre compte. Au lieu d'appeler l'URL ci-dessus, vous pouvez ensuite utiliser l'API github pour accéder au contenu d'un fichier . Veillez à utiliser l'en-tête Accept pour types de média personnalisés pour obtenir les données brutes. Cela pourrait ressembler à ceci:
curl \
-H 'Authorization: token $YOUR_TOKEN' \
-H 'Accept: application/vnd.github.v3.raw' \
-O \
-L 'https://api.github.com/repos/:owner/:repo/contents/:path'
Le -O
enregistre le contenu dans un fichier local portant le même nom que le nom du fichier distant. Pour une utilisation plus facile, vous pouvez l’envelopper dans un script. @Chris_Withers a suggéré une édition avec un extrait de code en python de Nice qui a malheureusement été rejetée car elle ne permettait pas de changer la réponse.
Copiez le lien brut du fichier spécifique depuis GitHub (au fur et à mesure que vous ouvrez le fichier dans Github, vous pouvez voir l'option permettant d'ouvrir le fichier en mode brut. Ouvrez-le en mode brut et copiez l'adresse URL)
Maintenant, utilisez la commande curl en ligne de commande pour télécharger le fichier.
curl -o filename raw-link-to-file
git checkout
Par exemple:
git checkout master~2 file1
(git checkout --help
pour l'aide)
Vous pouvez essayer github-files-fetcher , il s’agit d’un outil de ligne de commande permettant de télécharger un seul dossier ou fichier à partir d’un dépôt GitHub.
Dans l'exemple ci-dessus, vous pouvez utiliser la commande suivante pour extraire les deux fichiers spécifiques de github:
fetcher --url="git://github.com/username/Project.git/file1"
fetcher --url="git://github.com/username/Project.git/file2"
Imaginez un scénario plus réaliste: vous visitiez la page de page Web suivante et souhaitez télécharger uniquement le sous-répertoire async
.
https://github.com/reduxjs/redux/tree/master/examples
désolé de ne pas être autorisé à poster des images.
Avec le github-files-fetcher
, vous devez d’abord copier la url
de cette page, qui est https://github.com/reduxjs/redux/tree/master/examples/async , puis exécuter la commande ci-dessous en ligne de commande:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async