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?

Author: Arslan Ali, 2011-01-05

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ń."

 440
Author: jonescb,
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
  1. Przejdź do pliku, który chcesz pobrać.
  2. Kliknij go, aby wyświetlić zawartość w interfejsie GitHub.
  3. w prawym górnym rogu Kliknij prawym przyciskiem myszy Przycisk Raw.
  4. Zapisz jako...
 410
Author: bearfriend,
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

To wszystko musi iść w jednej linii. Opcja -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

 28
Author: thomasfuchs,
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


Pobierz z DownGit


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 .

 20
Author: Minhas Kamal,
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.

GitHub Mate Download

 13
Author: Cam Song,
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.

 11
Author: Joe Leo,
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

 9
Author: Drew Michel,
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:

  1. Kliknij nazwę pliku w repo GitHub.
  2. Kliknij Raw, aby wyświetlić plik zawartość.
  3. Skopiuj adres URL w przeglądarce.
  4. w wierszu poleceń uruchom albo:
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
 9
Author: Ted Cox,
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

 7
Author: DJJ,
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:

  1. przejdź do tego konkretnego zbioru danych, który chcesz pobrać i kliknij na nim.
  2. zobaczysz przycisk " Raw " w prawym górnym rogu zbioru danych.
  3. naciśnij "Alt", a następnie kliknij lewym przyciskiem myszy przycisk "Raw".
  4. 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.

 4
Author: saadi123,
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

 3
Author: Kevin Delord,
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

 3
Author: Mark,
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
  1. Strona, którą podlinkowałeś odpowiada na pierwsze pytanie.

  2. GitHub ma również możliwość pobierania takich rzeczy jak wydania.

  3. Google Code nie ma Git w ogóle.

  4. GitHub, Google Code i SourceForge , na początek, są darmowym hostingiem. SourceForge może nadal robić CVS .

 2
Author: bmargulies,
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 .

 2
Author: Ankish Jain,
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.

 2
Author: avi,
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

Myślę, że nowy url struktura jest raw.giturl na przykład:

Plik Git

Surowy

 1
Author: fsmart,
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ć.

 1
Author: estani,
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.

Tutaj wpisz opis obrazka

 1
Author: pkamb,
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.

 1
Author: George,
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
  1. po prawej stronie tuż pod "Clone in Desktop" jest napisane "Pobierz plik Zip"
  2. Pobierz Plik Zip
  3. rozpakuj plik
 0
Author: Evan Gertis,
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

 0
Author: Gregory Suvalian,
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');
 0
Author: Ayush Bansal,
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...

 0
Author: rezwits,
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

 0
Author: Gyumeijie,
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:

  1. W dowolnej publicznej stronie repozytoriów GitHub.
  2. Po prostu kliknij dwukrotnie na przedmioty, których potrzebujesz.
  3. kliknij przycisk Pobierz w prawym dolnym rogu.
  4. Zobacz postępy pulpit nawigacyjny i poczekaj na pobranie wyzwalacza przeglądarki.
  5. Pobierz plik ZIP.

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

 -1
Author: Natesh bhat,
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...

  1. Otwórz plik raw na oddzielnej karcie.

  2. Skopiuj całość do notatnika w Nowym pliku.

  3. Zapisz plik w rozszerzeniu, które pierwotnie posiadał

...pracował dla ... plik php i DL właśnie teraz.

 -2
Author: Guest,
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