Jak pobrać repozytorium GitHub jako .zip przy użyciu wiersza polecenia

9

Próbuję pobrać plik .zip z GitHub przy użyciu wiersza polecenia w systemie Ubuntu. Używam wgetdo tego polecenia w zdalnym systemie Ubuntu.

Uruchomiam wget <link>gdzie <link>jest link do paska adresu pliku, który chcę pobrać. Kończy się na archive.zip?ref=master.

Teraz, gdy wykonuję polecenie, pobiera plik text/htmltypu, a nie .zipplik, który chcę.

Powiedz mi, jak uzyskać link, który ma być podany jako parametr wget. W tej chwili właśnie kopiuję adres linku do przycisku (klikając prawym przyciskiem myszy) i zapisuję go jako wgetparametr.

UbuntuCoder
źródło
czy możesz podać dokładne polecenie, które wklejasz?
kashish
1
Czy Twój adres URL naprawdę kończy się na .zip?
kashish
@kashish Nie URL nie kończy się na .zip. Próbuję pobrać projekt z github i ma on przycisk pobierania, który daje zip i inne opcje. Więc próbuję stamtąd. kończy się na archive.zip?ref=master
UbuntuCoder
Aby pobrać projekt github, możesz użyćgit clone <projectlink.git>
kashish
1
Jeśli się nie mylę, możliwe jest pobranie repozytorium jako pliku Zip przy użyciu następującego adresu:https://github.com/{user}/{repo}/archive/{branch}.zip
Alex Chermenin

Odpowiedzi:

11

Z komentarzy, które widziałem, mówisz o GitHubie.

Nie będzie tak działać, ponieważ:

Pobranie projektu na GitHub powoduje, że serwer GitHub najpierw spakuje projekt jako zip, a następnie przekierowuje do tymczasowego linku, w którym dostajesz zip.

ten link będzie działał tylko przez pewien czas, a następnie GitHub usunie plik zip z ich serwerów.

Tak więc to, co dostajesz z wget, to tylko strona HTML, która przekieruje cię zaraz po wygenerowaniu pliku zip.

Zgodnie z sugerowanym zastosowaniem

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

aby pobrać repozytorium git ... Jeśli z jakiegoś powodu (np. w celu przeniesienia go do innych) potrzebujesz go wyraźnie jako zip, nadal możesz go spakować po zakończeniu klonowania.

derHugo
źródło
2
Po klonowaniu wykonaj git archive -o output.zip, jeśli plik zip jest nadal potrzebny
Ferrybig
git clonedziała oczywiście, ale zdarzają się przypadki, gdy nie ma sensu instalować git tylko po to, aby pobrać repo.
Robin Métral
0

Działa, jeśli użyjesz poprawnego adresu URL. W przypadku repozytorium GitHub istnieje plik zip https://github.com/user/repo/archive/master.zip, dzięki czemu można go pobrać za pomocą:

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

Spowoduje to pobranie masteroddziału user/repo. Możesz zastąpić master innym oddziałem lub hashem zatwierdzającym.

Jest to podobne do używania cURL z:

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

-LFlaga cURL podąża za przekierowaniami - jest to domyślna opcja wget.

Pamiętaj, że możesz również pobrać plik tarball za pomocą:

wget https://github.com/user/repo/archive/master.tar.gz
Robin Métral
źródło