2016-03-03 5 views
39

Ist es möglich, rekursiv alle Dateien in einem Ordner und seinen Unterordnern mit Git LFS zu verfolgen?Git LFS Track-Ordner rekursiv

Ich mag so etwas wie dies tun:

git lfs track myfolder/* 

Antwort

47

Verwenden git lfs track "myfolder/**", mit Zitaten der Shell bereits erweitert um das Muster zu vermeiden. Alles, was der track Befehl tut, ist in .gitattributes zu schreiben, die wiederum dieselben Musteranpassungsregeln wie .gitignore verwendet, siehe die PATTERN FORMAT Beschreibung.

+0

Ich habe dies mit Unterordnern versucht, aber nur Dateien und direkte Unterordner (wie ** meinOrdner/meinOrdner2/**) in ** meinOrdner ** werden nachverfolgt, aber nicht die Dateien in den Unterordnern (wie ** meinOrdner) /meinordner/meineDatei.png**). Danke für deine Hilfe – csa

+7

Ah, du bist wahrscheinlich ein Opfer der Shell-Erweiterung, d. H. 'Myfolder/**' wurde von der Shell erweitert, bevor es an Git übergeben wurde. Ich habe meine Antwort aktualisiert, um Zitate hinzuzufügen, die das beheben sollten. – sschuberth

+0

'.gitattributes' folgt NICHT (ALL) den gleichen Muster-Übereinstimmungsregeln, wie durch den obigen git-scm-Link dokumentiert, andernfalls könnte "meinOrdner/**" durch "meinOrdner /" ersetzt werden, konsistent mit der Aussage "foo/wird übereinstimmen ein Verzeichnis foo und Pfade darunter ". Ich denke (d. H. Unbestätigt) arbeitet "meinOrdner /" in ".gitignore", weil der Ignorierprozess durch das Dateisystem abstürzt und bei einer Übereinstimmung stoppt, aber ".gitattributes" wird gegen eine bereits existierende Auflistung geprüft. Wenn Sie anders finden, fügen Sie bitte einen Kommentar mit der git/git-lfs-Version, die dies umkehrte. – SensorSmith