Como baixar um repositório GitHub como .zip usando a linha de comando

9

Estou tentando baixar um arquivo .zip do GitHub usando a linha de comando no Ubuntu. Estou usando o wgetcomando para ele em um sistema Ubuntu remoto.

Eu corro wget <link>onde <link>está o link da barra de endereço do arquivo que eu quero baixar. Termina com archive.zip?ref=master.

Agora, quando estou executando o comando, ele está baixando um arquivo com o text/htmltipo e não o .ziparquivo que eu quero.

Por favor, diga-me como obter o link como parâmetro de wget. No momento, estou apenas copiando o endereço do link do botão (usando o botão direito) e escrevendo isso como um wgetparâmetro.

UbuntuCoder
fonte
você pode dizer o comando exato que está colando?
Kashish
1
Seu URL realmente termina com .zip?
26417 kashish
@kashish Não, o URL não termina com .zip. Estou tentando fazer o download de um projeto no github e ele tem um botão de download que oferece zip e outras opções. Então, eu estou tentando a partir daí. termina com archive.zip?ref=master
UbuntuCoder 26/07
Para descarregar um projeto github, você pode usargit clone <projectlink.git>
Kashish
1
Se não me engano, é possível fazer o download de um repositório como um arquivo Zip usando o seguinte endereço:https://github.com/{user}/{repo}/archive/{branch}.zip
Alex Chermenin

Respostas:

11

Pelos comentários, vi você falar sobre o GitHub.

Não vai funcionar assim porque:

Baixar um projeto no GitHub faz com que o servidor GitHub primeiro empacote seu projeto como zip e, em seguida, encaminhe- o para um link temporário no qual você obtém seu zip.

esse link funcionará apenas por um certo tempo e o GitHub excluirá seu arquivo zip dos servidores.

Então, o que você obtém com o wget é apenas a página html que o encaminharia assim que seu arquivo zip fosse gerado.

Como uso sugerido

git clone http://github.com/<yourRepoLink> <optional local path where to store>

para baixar o repositório git ... Se, por algum motivo (por exemplo, para transferi-lo para outros), você precisar explicitamente como zip, você ainda poderá empacotá-lo após a conclusão da clonagem.

derHugo
fonte
2
Após a clonagem, fazer git archive -o output.zip, se um arquivo zip ainda é necessária
Ferrybig
git clonefunciona, naturalmente, mas há casos em que não faz sentido instalar o git apenas para baixar um repositório.
Robin Métral
0

Funciona se você usar o URL correto. Para um repositório GitHub, há um zip em https://github.com/user/repo/archive/master.zip, para que você possa baixá-lo com:

wget https://github.com/user/repo/archive/master.zip

Isso baixa a masterramificação de user/repo. Você pode substituir o mestre por qualquer outro ramo ou um hash de confirmação.

Isso é semelhante ao uso de cURL com:

curl -L https://github.com/user/repo/archive/master.zip

O -Lsinalizador de cURL segue os redirecionamentos - é o padrão no wget.

Observe que você também pode baixar um tarball com:

wget https://github.com/user/repo/archive/master.tar.gz
Robin Métral
fonte