2016-04-15 2 views
1

Wir haben ein Repo mit einer Reihe von Projekten. Mir geht es nur um das Projekt "Orakel" im Repo. Als ich jedoch die Codebasis herunterzog, fand ich in anderen Ordnern Unterverzeichnisse, die "oracle" genannt wurden. Gibt es eine Möglichkeit, nur den übergeordneten Ordner zu finden, der übereinstimmt?Git Sparse Checkout nur einen Ordner im Stammverzeichnis des Repo zu ehren?

git init <repo> 
cd <repo> 
git remote add -f origin <url> 

git config core.sparseCheckout true 

echo "oracle/" >> .git/info/sparse-checkout 

Ausgabe

#ls -l 
    oracle 
    directory123 
    directoryabc 

#find . | grep "oracle" 
    directory123/sub1/sub2/oracle 
    directoryabc/sub1/sub2/sub3/oracle 
+1

Wenn das 'Oracle'-Projekt die Wurzel Ihres Repos ist, habe ich das Gefühl, dass das Schreiben von'/oracle/'anstelle von' oracle/'den Trick machen sollte. – Jubobs

+0

Nun verdammt, das funktioniert! Sie können als Antwort senden, wenn Sie möchten, und ich werde akzeptieren. – luckytaxi

Antwort

1

von oracle/-$GIT_DIR/info/sparse-checkout schreiben, sind Sie Ihre Git-Repo zu sagen, nur das Arbeitsverzeichnis mit Dateien füllen (falls vorhanden) deren übergeordnete Verzeichnis wird „Orakel“ genannt . Verzeichnisse

oracle/ 
directory123/sub1/sub2/oracle/ 
directoryabc/sub1/sub2/sub3/oracle/ 

alle diese Bedingung erfüllen.

Wenn Sie die sparse checkout zum oracle Verzeichnis beschränken möchten, die an der Wurzel Ihrer Git Repo ist, müssen Sie schreiben, nicht oracle/, aber /oracle/ (man beachte den führenden Schrägstrich) zu $GIT_DIR/info/sparse-checkout.

Verwandte Themen