Ich schrieb eine .gitconfig
[alias]
für die Durchführung eines "spärlichen Checkouts". Probieren Sie es aus (kein Wortspiel beabsichtigt):
Unter Windows laufen in cmd.exe
git config --global alias.sparse-checkout "!f(){ [ $# -eq 2 ] && L=${1##*/} L=${L%.git} || L=$2; mkdir -p \"$L/.git/info\" && cd \"$L\" && git init --template= && git remote add origin \"$1\" && git config core.sparseCheckout 1; [ $# -eq 2 ] && echo \"$2\" >> .git/info/sparse-checkout || { shift 2; for i; do echo $i >> .git/info/sparse-checkout; done }; git pull --depth 1 origin master;};f"
Ansonsten:
git config --global alias.sparse-checkout '!f(){ [ $# -eq 2 ] && L=${1##*/} L=${L%.git} || L=$2; mkdir -p "$L/.git/info" && cd "$L" && git init --template= && git remote add origin "$1" && git config core.sparseCheckout 1; [ $# -eq 2 ] && echo "$2" >> .git/info/sparse-checkout || { shift 2; for i; do echo $i >> .git/info/sparse-checkout; done }; git pull --depth 1 origin master;};f'
Verwendung :
# Makes a directory ForStackExchange with Plug checked out
git sparse-checkout https://github.com/YenForYang/ForStackExchange Plug
# To do more than 1 directory, you have to specify the local directory:
git sparse-checkout https://github.com/YenForYang/ForStackExchange ForStackExchange Plug Folder
El git config
Befehle sind der Einfachheit und der Speicherung halber "verkleinert", aber hier ist der Alias erweitert:
# Note the --template= is for disabling templates.
# Feel free to remove it if you don't have issues with them (like I did)
# `mkdir` makes the .git/info directory ahead of time, as I've found it missing sometimes for some reason
f(){
[ "$#" -eq 2 ] && L="${1##*/}" L=${L%.git} || L=$2;
mkdir -p "$L/.git/info"
&& cd "$L"
&& git init --template=
&& git remote add origin "$1"
&& git config core.sparseCheckout 1;
[ "$#" -eq 2 ]
&& echo "$2" >> .git/info/sparse-checkout
|| {
shift 2;
for i; do
echo $i >> .git/info/sparse-checkout;
done
};
git pull --depth 1 origin master;
};
f
18 Stimmen
Mögliche Duplikate von Unterverzeichnisse in Git auschecken?
2 Stimmen
Für einen Nutzer des Jahres 2014, was die
git clone
einfachsten Befehl? Ich habe este einfache Antwort . Wenn es etwas mehr einfach, bitte kommentieren1 Stimmen
Für diejenigen, die versuchen, den Inhalt des Repositorys zu klonen (und nicht den Root-Ordner zu erstellen), ist dies eine sehr einfache Lösung: stackoverflow.com/questions/6224626/
1 Stimmen
@JoachimBreitner: Diese Frage bezieht sich auf ausprobierend Unterverzeichnisse in Git (was einfach ist), während es bei dieser Frage um Klonen Unterverzeichnisse in Git (was unmöglich ist).
2 Stimmen
@NickSergeant: Seit Git 2.19, das vor 3 Wochen veröffentlicht wurde, ist dies endlich möglich, wie in dieser Antwort zu sehen ist: stackoverflow.com/a/52269934/2988 Überlegen Sie, ob Sie das jetzt akzeptieren. Hinweis: In Git 2.19 ist nur clientseitige Unterstützung implementiert, serverseitige Unterstützung fehlt noch, daher funktioniert es nur beim Klonen von lokalen Repositories. Beachten Sie auch, dass große Git-Hoster, wie z.B. GitHub, nicht den Git-Server verwenden, sondern ihre eigene Implementierung, so dass selbst wenn die Unterstützung im Git-Server auftaucht, dies nicht automatisch bedeutet, dass sie auf Git-Hostern funktioniert. (Außerdem könnten sie es schneller implementieren.)
1 Stimmen
Siehe auch: stackoverflow.com/questions/466303/
1 Stimmen
Ich habe eine
bash
Funktion, die das Herunterladen der Historie vermeidet, die einen einzelnen Zweig abruft und die eine Liste von Dateien oder Verzeichnissen abruft, die Sie benötigen. Sehen Sie es hier: stackoverflow.com/questions/60190759/5 Stimmen
Wenn Sie einen Ordner aus einem GitHub Repo herunterladen möchten, download-directory.github.io könnte genau das Richtige sein
1 Stimmen
@jemand771 Das war ein ausgezeichneter Kommentar. Genau das, was ich brauchte. Danke!
0 Stimmen
Svn rockt. Ich verwende diese Funktion für untergeordnete und verschachtelte Repos. git kann das nicht.