In Ausgabe 641 wird dasselbe Problem erwähnt.
Ich habe versucht , Git LFS mehr zu verwenden, fand aber keinen Weg , um meine vorherigen getrackten Pointer - Dateien mit zurückzukehren git lfs uninit
, git lfs untrack
, git rm
... , nachdem ich diese Dateien verschieben Sie es Listen noch zurück , als mit von Git LFS verfolgt git lfs ls-files
, wie kann ich das ganze Git LFS Opt - out Sachen aus meinem Repo?
Die Antwort war:
- Entfernen Sie alle filter.lfs. * Git-Konfigurationseinträge mit
git lfs uninit
.
- Löschen Sie alle Attribute, in denen der lfs-Filter verwendet wird,
.gitattributes
indem Sie sie git lfs untrack
für jeden Dateityp ausführen oder löschen, .gitattributes
wenn Sie nur LFS verwendet haben.
Danach werden alle hinzugefügten Dateien direkt an git gesendet.
Das war aber nicht so einfach:
Ich .git/lfs
lande später LFS-Zeigerdateien in meinem Arbeitsverzeichnis und muss alle meine Bilder wiederherstellen, indem ich den in diesen Zeigern gespeicherten sha1-Hash manuell verwende.
Update März 2016, die Ausgabe 957 zeigt eine mögliche Lösung durch tstephens619
:
Ich habe den gleichen Fehler gemacht, als ich mehrere kleine Grafikformate in meine git lfs
Tracking-Liste aufgenommen habe.
Ich konnte diese Dateien wie folgt wieder in Git verschieben:
Erstellen Sie eine Liste aller Dateien, die derzeit von verfolgt werden git-lfs
, filtern Sie heraus *.gz
und *.rpm
(ich möchte diese Erweiterungen weiterhin mit verfolgen git-lfs
)
git lfs ls-files | grep -vE "\.gz|\.rpm$" | cut -d ' ' -f 3 > ~/temp/lfs-files.txt
Hören Sie auf, die kleinen Grafikdateien zu verfolgen
git lfs untrack "*.tts"
git lfs untrack "*.bfx"
git lfs untrack "*.ttf"
git lfs untrack "*.xcf"
git lfs untrack "*.pkm"
git lfs untrack "*.png"
Vorübergehend uninit git-lfs
git lfs uninit
# Git LFS 2.x+
git lfs uninstall
Verwenden Sie die Dateiliste, um jede Datei zu berühren:
cat ~/temp/lfs-files.txt | xargs touch
git status
zeigt nun jede Datei als geändert an
Der Betreuerttaylorr
fügt hinzu:
Ein Weg, dies zu tun, wäre:
for file in $FILES_TO_REVERT; do
git lfs untrack "$file";
git rm --cached "$file";
git add --force "$file";
done
git commit -m "..."
Ich würde es vorziehen, Git LFS keinen Befehl zu dem oben genannten Effekt hinzuzufügen, da dies mit den von Git und Git LFS bereitgestellten Porzellanbefehlen auf verschiedene Weise möglich ist
.gitattributes
ist richtig eingerichtet, um die gewünschten Dateien zu verfolgen, diese Lösung hat wunderbar funktioniert. Viel einfacher als einige der anderen veröffentlichten Lösungen.