Wydaje mi się, że większość z was, programistów, korzysta z dowolnego VCS i mam nadzieję, że niektórzy z was używają Git. Czy masz jakieś wskazówki lub wskazówki, jak uzyskać adres URL pobierania pojedynczego pliku w repozytorium?
Nie chcę adresu URL do wyświetlania surowego pliku; w przypadku plików binarnych to nic na nic.
http://support.github.com/discussions/feature-requests/41-download-single-file
Czy można w ogóle używać GitHub jako „serwera pobierania”?
Jeśli zdecydujemy się przejść na kod Google, czy wspomniana funkcjonalność jest tutaj prezentowana?
Czy jest jakiś darmowy hosting i VCS dla projektów typu open source?
git
version-control
github
Radek Simko
źródło
źródło
Odpowiedzi:
Git nie obsługuje pobierania części repozytorium. Musisz pobrać wszystko. Ale powinieneś być w stanie to zrobić za pomocą GitHub.
Kiedy przeglądasz plik, ma on link do wersji „surowej”. URL jest skonstruowany tak jak
Wypełniając puste adresy URL, możesz użyć Wget lub cURL (z
-L
opcją, patrz poniżej) lub cokolwiek innego, aby pobrać pojedynczy plik. Ponownie, nie dostaniesz żadnej z przyjemnych funkcji kontroli wersji używanych przez Git.Aktualizacja: zauważyłem, że wspomniałeś, że to nie działa dla plików binarnych. Prawdopodobnie nie powinieneś używać plików binarnych w repozytorium Git, ale GitHub ma sekcję pobierania dla każdego repozytorium, której możesz użyć do przesyłania plików. Jeśli potrzebujesz więcej niż jednego pliku binarnego, możesz użyć pliku .zip. Adres URL do pobrania przesłanego pliku to:
Pamiętaj, że adresy URL podane powyżej, z linków dalej
github.com
, przekierują naraw.githubusercontent.com
. Nie należy bezpośrednio używać adresu URL podanego przez to przekierowanie HTTP 302, ponieważ zgodnie z RFC 2616 : „Ponieważ przekierowanie może być czasami zmieniane, klient POWINIEN nadal używać URI żądania dla przyszłych żądań”.źródło
raw
po nazwie repozytorium) jest teraz automatycznie przekierowywany do podanego formatu ( nazwa hostaraw.github.com
). W razie wątpliwości przejdź do odpowiedniego pliku na github.com i kliknij przycisk „Raw”.Raw
przycisk.źródło
Możesz użyć interfejsu API V3, aby uzyskać taki nieprzetworzony plik (potrzebny będzie 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
Wszystko to musi przebiegać w jednej linii.
-O
Opcja zapisuje plik w bieżącym katalogu. Możesz użyć,-o filename
aby określić inną nazwę pliku.Aby uzyskać token OAuth, postępuj zgodnie z instrukcjami tutaj: https://help.github.com/articles/creating-an-access-token-for-command-line-use
Napisałem to również jako sedno: https://gist.github.com/madrobby/9476733
źródło
Według tej zasady możesz użyć wget lub cURL:
W wierszu polecenia uruchom albo:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
Jeszcze jedno: w RHEL7.6 uruchom następujące polecenie:
wget https://URL-from-step3/ --output-document=FILE_NAME
źródło
wget
Po przejrzeniu pliku w repozytorium github i kliknięciu przycisku Raw użyłem surowej ścieżki do pliku źródłowego C. Pracowałem jak mistrz z Raspbian na moim Raspberry Pi 3.GitHub Mate sprawia, że pobieranie pojedynczego pliku jest łatwe, wystarczy kliknąć ikonę, aby pobrać, obecnie działa tylko w Chrome.
źródło
Możesz użyć
curl
tego sposobu:curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
oznacza, że curl pobiera zawartośćL
oznacza, że curl następuje po przekierowaniuźródło
Jest to teraz możliwe w GitHub dla dowolnego pliku. Musisz przetłumaczyć swoje pliki dla raw.github.com. Na przykład jeśli plik znajduje się w repozytorium pod adresem:
Za pomocą wget możesz pobrać surowy plik z:
Rails Composer jest tego doskonałym przykładem.
źródło
Istnieje chromowane rozszerzenie o nazwie Enhanced Github
Dodaje przycisk pobierania bezpośrednio po prawej stronie każdego pliku.
źródło
Aby odpowiedzieć na to, co powiedział thomasfuchs, ale zamiast tego dla użytkowników GitHub Enterprise, oto, czego możesz użyć.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
Oto także dokumentacja API https://developer.github.com/v3/repos/contents
źródło
https://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
W przypadku, gdy chcesz pobrać plik zip z
github
używaniawget
zobacz tę stronę po więcej szczegółów
źródło
Ta metoda działa w systemie Windows, ponieważ nigdy nie korzystałem z MAC, więc nie wiem, jakie są klucze alternatywne w MAC dla kluczy, które wymienię poniżej.
Porozmawiajmy o plikach CSV. JEŚLI chcesz pobrać plik CSV:
Pamiętaj, musisz jednocześnie nacisnąć Alt i lewy przycisk myszy. Wystarczy kliknąć przycisk „Raw”, aby otworzyć plik CSV w przeglądarce.
Mam nadzieję że to pomogło.
źródło
Powinieneś to zrobić po prostu z
raw
adresem URL swojego pliku.Na przykład, aby pobrać plik README z AFNetworking:
Ponieważ jest to repozytorium publiczne, nie potrzebujesz żadnych poświadczeń. Zwróć uwagę na rodzaj adresu URL:
raw.githubusercontent.com/path/to/file
źródło
Podsumowanie 2019 r
Istnieje wiele sposobów radzenia sobie z tym, w zależności od tego, jak duży jest plik, niezależnie od tego, czy oprócz plików trzeba pobierać foldery, czy też planuje się to ręcznie lub programowo.
Istnieje sześć opcji podsumowanych poniżej. A dla tych, którzy wolą bardziej praktyczne wyjaśnienia, przygotowałem film z YouTube: Pobierz pojedyncze pliki i foldery z GitHub .
Również zamieściłem podobną odpowiedź na StackOverflow dla tych, którzy muszą pobierać pojedyncze foldery / katalogi z GitHub (w przeciwieństwie do plików).
1. Interfejs użytkownika GitHub
2. Menu kontekstowe przeglądarki
3. Narzędzia stron trzecich
https://github.com/babel/babel-eslint/blob/master/lib/parse.js
.4. Subversion
svn export https://github.com/babel/babel-eslint/trunk/lib/parse.js
5. KRZYWA
curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.js
.6. GitHub API
https://api.github.com/repos/:owner/:repo/contents/:path
. Po wymianie zastępcze, przykład końcowy jest:https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.js
. Daje to dane JSON dla tego pliku, w tym adres URL pobierania (ten sam adres URL pobierania, którego użyliśmy w powyższym przykładzie cURL). Ta metoda nie jest jednak szczególnie przydatna w przypadku pojedynczego pliku (bardziej prawdopodobne byłoby, że użyjesz jej do pobrania określonego folderu, jak szczegółowo opisano w odpowiedzi, do której odsyłam powyżej).źródło
Funkcja GitHub prasowa
Zamiast linku do pobrania określonego pliku w repozytorium, powinieneś użyć GitHub's Releases do powiązania danych do pobrania (takich jak skompilowane pliki binarne) z oznaczoną wersją kodu źródłowego użytego do wygenerowania tych danych.
https://github.com/blog/1547-release-your-software
źródło
releases
2. Kliknij numer zatwierdzenia. 3. Znajdź...
żądany plik, kliknij trzy kropki i wybierzView file
4. Kliknij,View raw
aby pobrać plik !!!To na pewno zadziała. Przynajmniej w Chrome. Kliknij prawym przyciskiem myszy ikonę „Raw” -> Zapisz link jako .
źródło
Aby pobrać plik z repozytorium Github, użyj polecenia „curl” z linkiem do surowego pliku.
Dodaj opcję --output, a następnie nową nazwę pliku, aby pobrać nieprzetworzony plik do nowo utworzonego pliku.
źródło
Strona, do której linkujesz, odpowiada na pierwsze pytanie.
GitHub ma również funkcję pobierania takich rzeczy jak wydania.
Kod Google w ogóle nie ma Gita .
Na początek GitHub, Google Code i SourceForge to darmowy hosting. SourceForge może nadal wykonywać CVS .
źródło
Niedawno znalazłem usługę o nazwie
gitzip
i jej również open source:teren - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
Wejdź na powyższą stronę, wprowadź adres repo lub katalog, możesz pobrać pojedyncze pliki lub cały katalog jako plik zip.
źródło
jszip.min.js
z tego repozytorium? troll faceTeraz można pobrać dowolny plik lub dowolny folder w repozytorium przy użyciu tego rozszerzenia Google Chrome:
GitZip dla github: link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Stosowanie :
źródło
Myślę, że nowa
url
struktura toraw.giturl
na przykład:plik git
surowy
źródło
Jeśli zdarzy ci się używać curl i firefox ... możesz użyć cliget dodatku który generuje wywołanie curl, w tym wszystkie mechanizmy uwierzytelniania (inaczej ciasteczka).
Więc kliknij prawym przyciskiem myszy
raw
przycisk cliget -> „skopiuj adres URL linku”, a następnie wklej go do powłoki. Otrzymasz swój plik, nawet jeśli będziesz musiał się zalogować, aby go zobaczyć.źródło
źródło
W przypadku użytkowników korzystających z GitHub Enterprise musisz utworzyć adres URL w następujący sposób
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
Szczegóły można znaleźć tutaj
http://artisticcheese.blogspot.com/2017/04/how-to-download-indidual-files-from.html
źródło
Lub spróbuj tego
źródło
Użyłem następującego formatu i uważam, że ważne jest, aby poinformować o ścieżce.
^^^ powyższe nie jest w moim przekonaniu kompletne
niektórzy mówili raw.github.com lub raw zamiast blob, ale druga linia działa dla mnie i mam nadzieję, że pomogą innym ...
2 ¢
źródło
Możesz spróbować github-files-fetcher , jest to narzędzie wiersza poleceń, które pobiera pojedynczy folder lub plik z repozytorium GitHub.
Pomyśl o prawdziwym scenariuszu: odwiedzałeś następującą stronę i chcesz pobrać
async
sam podkatalog.https://github.com/reduxjs/redux/tree/master/examples
Przy pomocy The
github-files-fetcher
należy najpierw skopiowaćurl
tę stronę, którą jest https://github.com/reduxjs/redux/tree/master/examples/async , a następnie uruchomić poniższe polecenie w wierszu polecenia:fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
źródło
Właśnie to działało dla mnie teraz ...
Otwórz plik raw w osobnej karcie.
Skopiuj całość do notatnika w nowym pliku.
Zapisz plik w rozszerzeniu, które pierwotnie miał
przetestowany z plikiem php, który właśnie pobrałem (w momencie odpowiedzi)
źródło