Próbuję pobrać plik .zip z GitHub przy użyciu wiersza polecenia w systemie Ubuntu. Używam wget
do 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/html
typu, a nie .zip
plik, 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 wget
parametr.
command-line
wget
zip
github
UbuntuCoder
źródło
źródło
git clone <projectlink.git>
https://github.com/{user}/{repo}/archive/{branch}.zip
Odpowiedzi:
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
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.
źródło
git archive -o output.zip
, jeśli plik zip jest nadal potrzebnygit clone
działa oczywiście, ale zdarzają się przypadki, gdy nie ma sensu instalować git tylko po to, aby pobrać repo.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ą:Spowoduje to pobranie
master
oddziałuuser/repo
. Możesz zastąpić master innym oddziałem lub hashem zatwierdzającym.Jest to podobne do używania cURL z:
-L
Flaga cURL podąża za przekierowaniami - jest to domyślna opcja wget.Pamiętaj, że możesz również pobrać plik tarball za pomocą:
źródło