Pobieranie pojedynczych plików z GitHub
Domyślam się, że większość z was, programistów, używa dowolnych VCS , i mam nadzieję, że niektórzy z Was używają Gita. Czy masz jakąś wskazówkę lub sztuczkę, jak uzyskać adres URL do pobrania pojedynczego pliku w repozytorium?
Nie chcę adresu URL do wyświetlania pliku raw; w przypadku binariów to na nic.
Http://support.github.com/discussions/feature-requests/41-download-single-file
Czy jest w ogóle możliwe użycie Githuba jako"serwera pobierania"?
Jeśli zdecydujemy się przełączyć na Google Kod, czy wspomniana funkcjonalność jest tutaj prezentowana?
A może jest jakiś darmowy hosting i VCS dla projektów open-source?
26 answers
Git nie obsługuje pobierania części repozytorium. Musisz pobrać wszystko. Ale powinieneś być w stanie to zrobić z GitHub.
Gdy oglądasz plik, zawiera on link do wersji "raw". URL jest skonstruowany tak
https://github.com/user/repository/raw/branch/filename
Wypełniając spacje w adresie URL, możesz użyć Wget lub cURL (z opcją -L
, patrz poniżej) lub cokolwiek innego, aby pobrać pojedynczy plik. Ponownie, nie otrzymasz żadnej z funkcji kontroli wersji nice używanych przez Git robiąc to.
Update: 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ć a .plik zip. Adres URL do pobrania przesłanego pliku to:
https://github.com/downloads/user/repository/filename
Zwróć uwagę, że adresy URL podane powyżej, z linków na github.com
, przekierują do raw.githubusercontent.com
. Nie powinieneś używać bezpośrednio adresu URL podanego przez to HTTP 302 redirect ponieważ, per RFC 2616: "ponieważ przekierowanie może być czasami zmieniane, klient powinien nadal używać Request-URI dla przyszłych żądań."
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 06:31:47
- Przejdź do pliku, który chcesz pobrać.
- Kliknij go, aby wyświetlić zawartość w interfejsie GitHub.
- w prawym górnym rogu Kliknij prawym przyciskiem myszy Przycisk
Raw
. - Zapisz jako...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-16 22:12:48
Możesz użyć API V3, aby uzyskać taki plik raw (będziesz potrzebował tokena OAuth):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path
-O
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 jako gist jak dobrze.: https://gist.github.com/madrobby/9476733
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-11 00:44:54
Idź do DownGit - Wpisz swój adres URL-Pobierz!
Specjalnie nadaje się do dużych plików
możesz pobierać pojedyncze pliki i katalogi w formacie zip. Możesz także utworzyć link do pobrania, a nawet nadać nazwę plikowi zip. Szczegółowe użycie- tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-09 05:16:27
GitHub Mate sprawia, że pobieranie pojedynczych plików jest łatwe, wystarczy kliknąć ikonę, aby pobrać, obecnie działa tylko na Chrome.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-17 05:52:23
Jest to teraz możliwe w Githubie dla dowolnego pliku. Musisz przetłumaczyć pliki dla raw.github.com. na przykład, jeśli plik znajduje się w repozytorium pod adresem:
https://github.com/<username>/<repo>/some_directory/file.rb
Za pomocą wget możesz pobrać plik raw z:
https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb
Rails Composer jest doskonałym tego przykładem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-09 20:33:03
Aby śledzić 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
Również tutaj jest dokumentacja API https://developer.github.com/v3/repos/contents
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-21 19:05:31
Zgodnie z Ten gist , możesz użyć wget lub cURL:
- Kliknij nazwę pliku w repo GitHub.
- Kliknij Raw, aby wyświetlić plik zawartość.
- Skopiuj adres URL w przeglądarce.
- w wierszu poleceń uruchom albo:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 19:29:01
W przypadku, gdy chcesz pobrać plik zip z github
za pomocą wget
wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true
Zobacz tę stronę internetową Po Więcej Szczegółów
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-07 16:06:56
Ta metoda działa w systemie Windows, ponieważ nigdy nie używałem Maca, więc nie wiem, jakie są alternatywne klucze w Macu dla kluczy, które mam zamiar wspomnieć poniżej.
Porozmawiajmy o plikach CSV. Jeśli chcesz pobrać plik CSV:
- przejdź do tego konkretnego zbioru danych, który chcesz pobrać i kliknij na nim.
- zobaczysz przycisk " Raw " w prawym górnym rogu zbioru danych.
- naciśnij "Alt", a następnie kliknij lewym przyciskiem myszy przycisk "Raw".
- cały CSV będzie pobierz w systemie.
Pamiętaj, musisz nacisnąć Alt i kliknąć lewym przyciskiem myszy jednocześnie. Wystarczy kliknąć przycisk "Raw", aby otworzyć plik CSV w przeglądarce.
Mam nadzieję, że to pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-17 19:15:27
Powinieneś to zrobić za pomocą adresu URL raw
swojego pliku.
Na przykład, aby pobrać README z AFNetworking:
curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md
Ponieważ jest to publiczne repo, nie potrzebujesz żadnych poświadczeń.
Proszę zwrócić uwagę na rodzaj url: raw.githubusercontent.com/path/to/file
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-05 10:12:04
Możesz użyć curl
w ten sposób:
curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
oznacza, że curl pobiera zawartośćL
oznacza, że curl podąża za przekierowaniem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-14 18:14:19
Strona, którą podlinkowałeś odpowiada na pierwsze pytanie.
GitHub ma również możliwość pobierania takich rzeczy jak wydania.
Google Code nie ma Git w ogóle.
GitHub, Google Code i SourceForge , na początek, są darmowym hostingiem. SourceForge może nadal robić CVS .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-20 23:08:30
To na pewno zadziała. Przynajmniej w Chrome. Kliknij prawym przyciskiem myszy na ikonę " Raw " - > Zapisz Link jako .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-23 14:00:17
Niedawno znalazłem usługę o nazwie gitzip
i jej również open source:
Site- http://kinolien.github.io/gitzip/
Repo - https://github.com/KinoLien/gitzip
Przejdź do powyższej strony, Wprowadź adres URL repo lub katalogu, możesz pobrać pojedyncze pliki lub cały katalog jako plik zip.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-29 11:43:17
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-30 12:20:02
Jeśli przypadkiem używasz curl i Firefoksa... możesz użyć dodatku cliget , który generuje wywołanie curl zawierające wszystkie mechanizmy uwierzytelniania (aka pliki cookie).
Więc kliknij prawym przyciskiem myszy na raw
przycisk cliget-> "Kopiuj adres url dla linku", a następnie wklej to do powłoki. Otrzymasz swój plik, nawet jeśli będziesz musiał się zalogować, aby go zobaczyć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-26 08:21:47
Zamiast linku do pobrania określonego pliku w repo, powinieneś użyć funkcji Releases GitHub, aby powiązać dane do pobrania (takie jak skompilowane pliki binarne) z oznaczoną wersją kodu źródłowego używaną do generowania tych danych.
Https://github.com/blog/1547-release-your-software
Z radością ogłaszamy Wydania, czyli workflow do wysyłki oprogramowania do użytkowników końcowych. Wydania są obiektami pierwszej klasy z changelogami i aktywami binarnymi, które zaprezentuj pełną historię projektu poza artefaktami Gita.
Do wydań dołączone są informacje o wydaniu oraz linki do pobrania oprogramowania lub kodu źródłowego.
Zgodnie z konwencjami wielu projektów Git, Wydania są powiązane z tagami Git. Możesz użyć istniejącego znacznika lub pozwolić releases utworzyć znacznik po jego opublikowaniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-10 20:25:17
Aby pobrać plik z repo Github, użyj polecenia 'curl' z linkiem do pliku raw.
curl https://raw.githubusercontent.com/user/repo/filename --output filename
Dodaj opcję --output, a następnie nową nazwę pliku, aby pobrać plik raw do nowo utworzonego pliku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-11 18:13:19
- po prawej stronie tuż pod "Clone in Desktop" jest napisane "Pobierz plik Zip"
- Pobierz Plik Zip
- rozpakuj plik
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-21 19:04:21
Dla użytkowników z GitHub Enterprise musisz skonstruować adres URL w następującym schemacie
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
Szczegóły znajdziesz tutaj
Http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-27 20:08:15
Lub spróbuj tego
const https = require('https');
const fs = require('fs');
const DOMAIN = 'raw.githubusercontent.com';
function writeFile(data, fileName) {
fs.appendFile(fileName, data.toString(), err => {
if (err) {
console.log('error in writing file', err);
}
});
}
function EOF(data) {
console.log('EOF');
}
function getFileName(pathToFile) {
var result = pathToFile.split('/');
var splitLength = result.length;
return result[splitLength - 1];
}
function getFile(branchName, username, repoName, ...pathToFile) {
pathToFile.forEach(item => {
const path = `/${username}/${repoName}/${branchName}/${item}`;
const URL = `${DOMAIN}${path}`;
const options = {
hostname: DOMAIN,
path: path
};
var fileName = getFileName(item);
https
.get(options, function(res) {
console.log(res.statusCode);
/* if file not found */
if (res.statusCode === 404) {
console.log('FILE NOT FOUND');
} else {
/* if file found */
res.on('data', data => writeFile(data, fileName));
res.on('end', data => EOF(data));
}
})
.on('error', function(res) {
console.log('error in reading URL');
});
});
}
getFile('master', 'bansalAyush', 'InstagramClone', '.babelrc', 'README.md');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-13 05:58:36
Użyłem następującego formatu i uważam, że ważne jest, aby poinformować o ścieżce.
https://github.com/user/repository/raw/branch/filename
^ ^ ^ powyższe nie jest zbyt kompletne w moim umyśle
https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true
Niektórzy mówili raw.github.com lub raw zamiast blob, ale 2. linia działa dla mnie i mam nadzieję, że pomoże innym...
2¢
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-30 03:36:42
Możesz wypróbować github-files-fetcher , jest to narzędzie wiersza poleceń, które pobiera pojedynczy folder lub Plik z repo GitHub.
Pomyśl o prawdziwym scenariuszu: odwiedziłeś poniższą stronę i chcesz pobrać podkatalog async
samodzielnie.
Https://github.com/reduxjs/redux/tree/master/examples
Przepraszam, że nie mogę publikować zdjęć.
Z github-files-fetcher
, należy najpierw skopiować url
tej strony, która jest https://github.com/reduxjs/redux/tree/master/examples/async , a następnie uruchom poniższe polecenie w wierszu poleceń:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 15:13:41
Teraz Można pobrać dowolny plik lub dowolny folder w repozytorium za pomocą rozszerzenia google chrome:
GitZip dla github: link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Użycie:
- W dowolnej publicznej stronie repozytoriów GitHub.
- Po prostu kliknij dwukrotnie na przedmioty, których potrzebujesz.
- kliknij przycisk Pobierz w prawym dolnym rogu.
- Zobacz postępy pulpit nawigacyjny i poczekaj na pobranie wyzwalacza przeglądarki.
- Pobierz plik ZIP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-03 17:39:16
To właśnie dla mnie zadziałało...
Otwórz plik raw na oddzielnej karcie.
Skopiuj całość do notatnika w Nowym pliku.
-
Zapisz plik w rozszerzeniu, które pierwotnie posiadał
...pracował dla ... plik php i DL właśnie teraz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-21 19:04:07