Eu acho que a maioria de vocês, desenvolvedores, usa qualquer VCS , e espero que alguns de vocês usem o Git. Você tem alguma dica ou truque para obter um URL de download para um único arquivo em um repositório?
Não quero o URL para exibir o arquivo bruto; no caso de binários, é por nada.
http://support.github.com/discussions/feature-requests/41-download-single-file
É possível usar o GitHub como um "servidor de download"?
Se decidirmos mudar para o Google Code, a funcionalidade mencionada é apresentada aqui?
Ou existe alguma hospedagem gratuita e VCS para projetos de código aberto?
git
version-control
github
Radek Simko
fonte
fonte
Respostas:
O Git não suporta o download de partes do repositório. Você tem que baixar tudo. Mas você deve conseguir fazer isso com o GitHub.
Quando você visualiza um arquivo, ele possui um link para a versão "bruta". O URL é construído assim
Ao preencher os espaços em branco na URL, você pode usar Wget ou cURL (com a
-L
opção, veja abaixo) ou o que quer que seja para baixar um único arquivo. Novamente, você não obterá nenhum dos bons recursos de controle de versão usados pelo Git fazendo isso.Atualização: notei que você mencionou que isso não funciona para arquivos binários. Você provavelmente não deve usar arquivos binários no seu repositório Git, mas o GitHub possui uma seção de download para cada repositório que você pode usar para fazer upload de arquivos. Se você precisar de mais de um binário, poderá usar um arquivo .zip. O URL para baixar um arquivo carregado é:
Observe que os URLs fornecidos acima, a partir dos links
github.com
, serão redirecionados pararaw.githubusercontent.com
. Você não deve usar diretamente a URL fornecida por este redirecionamento HTTP 302, porque, de acordo com a RFC 2616 : "Como o redirecionamento pode ser alterado ocasionalmente, o cliente DEVE continuar a usar o Request-URI para solicitações futuras".fonte
raw
após o nome do repositório) agora é automaticamente redirecionado para o formato mencionado (nome do hostraw.github.com
). Em caso de dúvida, navegue até o arquivo em questão no github.com e clique no botão 'Raw'.Raw
botão direito do mouse .fonte
Você pode usar a API da V3 para obter um arquivo bruto como este (você precisará de um token OAuth):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path
Tudo isso tem que seguir uma linha. A
-O
opção salva o arquivo no diretório atual. Você pode usar-o filename
para especificar um nome de arquivo diferente.Para obter o token OAuth, siga as instruções aqui: https://help.github.com/articles/creating-an-access-token-for-command-line-use
Eu escrevi isso como uma essência também: https://gist.github.com/madrobby/9476733
fonte
De acordo com esta essência , você pode usar wget ou cURL:
Na linha de comandos, execute:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
Mais um: no RHEL7.6, execute o seguinte:
wget https://URL-from-step3/ --output-document=FILE_NAME
fonte
wget
seguido pelo caminho bruto para o arquivo de origem C que eu queria depois de visualizar o arquivo no repositório do github e clicar no botão Raw. Trabalhou como um campeão com Raspbian no meu Raspberry Pi 3. #O GitHub Mate facilita o download de um arquivo, basta clicar no ícone para fazer o download, atualmente ele só funciona no Chrome.
fonte
Você pode usar
curl
desta maneira:curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
significa que a onda baixa o conteúdoL
significa que a onda segue o redirecionamentofonte
Agora isso é possível no GitHub para qualquer arquivo. Você precisa traduzir seus arquivos para raw.github.com. Por exemplo, se o seu arquivo estiver no seu repositório em:
Usando o wget, você pode pegar o arquivo bruto em:
O Rails Composer é um ótimo exemplo disso.
fonte
Existe uma extensão do Chrome chamada Enhanced Github
Ele adicionará um botão de download diretamente à direita de cada arquivo.
fonte
Para acompanhar o que thomasfuchs disse, mas para os usuários do GitHub Enterprise, aqui está o que você pode usar.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
Também aqui está a documentação da API https://developer.github.com/v3/repos/contents
fonte
https://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
Caso você queira baixar um arquivo zip
github
usandowget
consulte este site para mais detalhes
fonte
Esse método funciona no Windows, pois eu nunca usei o MAC, então não sei quais são as chaves alternativas no MAC para as chaves que vou mencionar abaixo.
Vamos falar sobre os arquivos CSV. Se você deseja baixar o arquivo CSV:
Lembre-se, você deve pressionar Alt e clicar com o botão esquerdo simultaneamente. Basta clicar no botão "Raw" para abrir o CSV no navegador.
Espero que ajude.
fonte
Você deve fazê-lo apenas com o
raw
URL do seu arquivo.Por exemplo, para baixar o README do AFNetworking:
Como é um repositório público, você não precisa de credenciais. Observe o tipo de URL:
raw.githubusercontent.com/path/to/file
fonte
2019 Resumo
Existem várias maneiras de lidar com isso, dependendo do tamanho do arquivo, se você precisa ou não fazer download de pastas além dos arquivos e se planeja fazer isso manual ou programaticamente.
Existem seis opções resumidas abaixo. E para aqueles que preferem uma explicação mais prática, montei um vídeo do YouTube: Baixe arquivos e pastas individuais do GitHub .
Além disso, eu publiquei uma resposta semelhante no StackOverflow para aqueles que precisam baixar pastas / diretórios únicos do GitHub (em vez de arquivos).
1. Interface de usuário do GitHub
2. Menu de contexto do navegador
3. Ferramentas de Terceiros
https://github.com/babel/babel-eslint/blob/master/lib/parse.js
.4. Subversão
svn export https://github.com/babel/babel-eslint/trunk/lib/parse.js
5. cURL
curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.js
.6. API do GitHub
https://api.github.com/repos/:owner/:repo/contents/:path
. Depois de substituir os espaços reservados, um exemplo do ponto final é:https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.js
. Isso fornece dados JSON para esse arquivo, incluindo um URL de download (o mesmo URL de download que usamos no exemplo cURL acima). Porém, esse método não é tão útil para um único arquivo (é mais provável que você o use para baixar uma pasta específica, conforme detalhado na resposta que eu vinculei acima).fonte
Lançamentos do GitHub
Em vez de criar um link para baixar um arquivo específico no repositório, você deve usar o recurso Versões do GitHub para associar dados para download (como binários compilados) à versão marcada do código-fonte usado para gerar esses dados.
https://github.com/blog/1547-release-your-software
fonte
releases
2. Clique no número de confirmação. 3. Encontre o arquivo que deseja, clique nos três pontos...
e selecioneView file
4. Clique emView raw
para baixar o arquivo !!!Isso definitivamente funcionaria. Pelo menos no Chrome. Clique com o botão direito do mouse no ícone "Raw" -> Salvar link como .
fonte
Para baixar um arquivo de um repositório do Github, use o comando 'curl' com o link para o arquivo bruto.
Adicione a opção --output seguida pelo novo nome do arquivo para baixar o arquivo bruto para o arquivo recém-criado.
fonte
A página à qual você vinculou responde à primeira pergunta.
O GitHub também possui um mecanismo de download para coisas como lançamentos.
O Google Code não possui o Git .
GitHub, Google Code e SourceForge , apenas para começar, são hospedagem gratuita. O SourceForge ainda pode fazer o CVS .
fonte
Recentemente, encontrei um serviço chamado
gitzip
e também é de código aberto:site - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
Visite o site acima, insira o URL do repositório ou diretório, você pode baixar arquivos individuais ou o diretório inteiro como um arquivo zip.
fonte
jszip.min.js
desse repositório? cara de trollAgora é possível baixar qualquer arquivo ou pasta específica dentro do repositório usando esta extensão do google chrome:
GitZip para github: link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdbd
Uso:
fonte
Eu acho que a nova
url
estrutura éraw.giturl
por exemplo:arquivo git
cru
fonte
Se você usar curl e firefox ... poderá usar o complemento cliget , que gera uma chamada de curl incluindo todos os mecanismos de autenticação (também conhecidos como cookies).
Então clique com o
raw
botão direito do mouse no botão cliget -> "copy url for link" e cole-o em um shell. Você receberá seu arquivo mesmo que tenha que fazer login para vê-lo.fonte
fonte
Para usuários do GitHub Enterprise, você precisa criar URL no seguinte esquema
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
Detalhes podem ser encontrados aqui
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
fonte
Ou tente isso
fonte
Usei o seguinte formato e considero importante informar sobre o caminho.
^^^ o acima não é muito completo em minha mente
alguns disseram raw.github.com ou raw em vez de blob, mas a segunda linha funciona para mim e espero que ajude outras pessoas ...
2 ¢
fonte
Você pode tentar o github-files-fetcher , é uma ferramenta de linha de comando que baixa uma única pasta ou arquivo de um repositório do GitHub.
Pense em um cenário real: você estava visitando a seguinte página da web e deseja baixar o
async
subdiretório sozinho.https://github.com/reduxjs/redux/tree/master/examples
Com
github-files-fetcher
, você deve primeiro copiar aurl
página, https://github.com/reduxjs/redux/tree/master/examples/async , e executar o comando abaixo na linha de comando:fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
fonte
Isto é o que funcionou para mim agora ...
Abra o arquivo bruto em uma guia separada.
Copie a coisa toda no seu bloco de notas em um novo arquivo.
Salve o arquivo na extensão original.
testado com um arquivo php que eu baixei agora (no momento da resposta)
fonte