Znalazłem kolekcję Slackbuildów, niektóre potrzebne są na GitHub. https://github.com/PhantomX/slackbuilds/ Nie chcę dostać całego git.
git clone https://github.com/PhantomX/slackbuilds.git
Ale dostań tylko slackbuild, dla tego .
Jak to zrobić? Czy to możliwe?
Odpowiedzi:
Skończysz pobieranie całej historii, więc nie widzę w tym wiele korzyści, ale możesz sprawdzić konkretne części za pomocą „rzadkiego” zamówienia. Cytując ten post przepełnienia stosu :
Lepiej też użyć płytkiego klonu . Zamiast
git pull
polecenia podanego wcześniej, spróbuj:źródło
error: Sparse checkout leaves no entry on working directory
po zrobieniu git pull po dokonaniu modyfikacjicore.sparseCheckout
i.git/info/sparse-checkout
Spróbuj tego:
źródło
/trunk
i usunąć/tree/master
. Więcej tutajgit clone --filter
z Git 2.19Ta opcja faktycznie pomija pobieranie niepotrzebnych obiektów z serwera:
Serwer powinien być skonfigurowany z:
Począwszy od wersji 2.19.0 nie ma obsługi serwera, ale można ją już przetestować lokalnie.
DO ZROBIENIA:
--filter=blob:none
pomija wszystkie obiekty BLOB, ale nadal pobiera wszystkie obiekty drzewa. Ale w normalnym repo powinno to być małe w porównaniu do samych plików, więc jest to już wystarczająco dobre. Zapytano pod adresem : https://www.spinics.net/lists/git/msg342006.html Devs odpowiedział, że--filter=tree:0
jest w przygotowaniu.Pamiętaj, że to
--depth 1
już sugeruje--single-branch
, patrz także: /programming/1778088/how-to-clone-a-single-branch-in-gitfile://$(path)
jest wymagany, aby pokonaćgit clone
shenanigany protokołu: /programming/47307578/how-to-shallow-clone-a-local-git-repository-with-a-relative-pathFormat
--filter
jest udokumentowany naman git-rev-list
.Rozszerzono zdalny protokół Git w celu obsługi tej funkcji.
Dokumenty na drzewie Git:
Przetestuj to
GitHub w górę .
Dane wyjściowe w Git v2.19.0:
Wnioski:
d1/
brakuje wszystkich obiektów blob spoza . Np.0975df9b39e23c15f63db194df7f45c76528bccb
, Któregod2/b
nie ma po sprawdzeniud1/
.Zauważ, że
root/root
imybranch/mybranch
również ich brakuje, ale--depth 1
ukrywa to na liście brakujących plików. Jeśli usuniesz--depth 1
, zostaną one wyświetlone na liście brakujących plików.źródło
W końcu udało mi się to dzięki powyższym. Edytowałem plik bezpośrednio, otrzymując błędy, przypadkowo włączając cytaty. Twój plik .git / info / sparse-checkout powinien zawierać tylko katalog, bez cudzysłowów. Oto przykład: Ten gigantyczny projekt: https://github.com/SharePoint/sp-dev-fx-webparts , chciałem tylko edytora skryptów reagujących w katalogu próbek. https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor
Postępowałem zgodnie z powyższymi instrukcjami i działałem, gdy mój plik .git / info / sparse-checkout miał właśnie to
przykłady / edytor skryptów reagujących
źródło
Spowoduje to sklonowanie określonego folderu i usunięcie całej niezwiązanej z nim historii.
źródło
W przypadku repozytoriów GitHub można sklonować dowolne podkatalogi dowolnego repozytorium GitHub (pod dowolnym odniesieniem) przy użyciu https://github.com/HR/github-clone
źródło