Ich habe eine Sammlung von Slackbuilds gefunden, einige, die ich brauche, gibt es auf GitHub. https://github.com/PhantomX/slackbuilds/ Ich möchte nicht alle Git bekommen.
git clone https://github.com/PhantomX/slackbuilds.git
Aber nur einen Slackbuild bekommen, für diesen .
Wie macht man das? Ist es möglich?
Antworten:
Sie werden am Ende den gesamten Verlauf herunterladen, daher sehe ich keinen großen Vorteil darin, aber Sie können bestimmte Teile mit einem "spärlichen" Checkout auschecken. Zitiert diesen Stapelüberlauf Beitrag :
Vielleicht ist es auch besser, einen flachen Klon zu verwenden.
git pull
Versuchen Sie anstelle des zuvor angegebenen Befehls Folgendes:quelle
error: Sparse checkout leaves no entry on working directory
Nachdem ich die Modifikation ancore.sparseCheckout
und.git/info/sparse-checkout
Versuche dies:
quelle
/trunk
und entfernen müssen/tree/master
. Mehr hiergit clone --filter
von Git 2.19Diese Option überspringt das Abrufen nicht benötigter Objekte vom Server:
Der Server sollte konfiguriert sein mit:
Ab v2.19.0 gibt es keine Serverunterstützung, diese kann jedoch bereits lokal getestet werden.
TODO:
--filter=blob:none
Überspringt alle Blobs, ruft aber trotzdem alle Baumobjekte ab. Bei einem normalen Repo sollte dies jedoch im Vergleich zu den Dateien selbst winzig sein, sodass dies bereits gut genug ist. Gefragt unter: https://www.spinics.net/lists/git/msg342006.html Die Entwickler haben geantwortet--filter=tree:0
, dass dies in Vorbereitung ist.Beachten Sie, dass dies
--depth 1
bereits impliziert--single-branch
, siehe auch: https://stackoverflow.com/questions/1778088/how-to-clone-a-single-branch-in-gitfile://$(path)
ist erforderlich, umgit clone
Protokoll-Probleme zu überwinden : https://stackoverflow.com/questions/47307578/how-to-shallow-clone-a-local-git-repository-with-a-relative-pathDas Format von
--filter
ist am dokumentiertman git-rev-list
.Das Git-Remote-Protokoll wurde erweitert, um diese Funktion zu unterstützen.
Dokumente zum Git-Tree:
Probieren Sie es aus
GitHub Upstream .
Ausgabe in Git v2.19.0:
Fazit: Alle Kleckse von ausserhalb
d1/
fehlen. ZB0975df9b39e23c15f63db194df7f45c76528bccb
ist dasd2/b
nach dem Auschecken nicht dad1/
.Beachten Sie, dass
root/root
undmybranch/mybranch
auch fehlen, aber--depth 1
verbirgt das aus der Liste der fehlenden Dateien. Wenn Sie entfernen--depth 1
, werden sie in der Liste der fehlenden Dateien angezeigt.quelle
Ich habe das endlich zum Laufen gebracht, dank dem oben genannten. Ich habe die Datei direkt bearbeitet und Fehler durch versehentliches Einfügen der Anführungszeichen erhalten. Ihre .git / info / sparse-checkout-Datei sollte nur das Verzeichnis und keine Anführungszeichen enthalten. Hier ein Beispiel: Dieses gigantische Projekt: https://github.com/SharePoint/sp-dev-fx-webparts , ich wollte nur den React-Script-Editor im Beispielverzeichnis. https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor
Ich habe die obigen Anweisungen befolgt und es funktioniert, als meine .git / info / sparse-checkout-Datei genau dies enthielt
Samples / React-Script-Editor
quelle
Dadurch wird ein bestimmter Ordner geklont und der gesamte Verlauf, der nicht mit ihm zusammenhängt, entfernt.
quelle
Bei GitHub-Repos können Sie beliebige Unterverzeichnisse eines beliebigen GitHub-Repositorys (mit einer beliebigen Referenz) mithilfe von https://github.com/HR/github-clone klonen
quelle