Sie befinden sich im Service: Software Engineering Services (GitLab)

Löschen von Dateien aus zu großen GitLab Projekten

Löschen von Dateien aus zu großen GitLab Projekten

Detailinformation

Vorbereitungen

Für diese Anleitung muss ein Git Client auf dem Rechner installiert, sowie ein Projekt geklont (z. B. mit TortoiseGit) sein. Der Git Client beinhaltet unter Windows auch eine Git Shell, die für diese Anleitung benötigt wird. Um die Git Shell zu starten, muss im Explorer nach einem Rechtsklick auf den Ordner, der das Projekt enthält, "Git Bash here" ausgewählt werden. Daraufhin öffnet sich die Git Bash mit gesetztem Pfad.

dem Ausführen der unteren Befehle sollte noch die aktuelle Größe des Repos abgefragt werden, um einen einfachen vorher/nachher Vergleich machen zu können. Dazu hilft folgender Befehl:

git count-objects -v
 

Aufräumen des Repos

Für den folgenden Befehl muss der Pfad zur zu löschenden Datei bekannt sein. Diesen findet man, wenn man in GitLab innerhalb des entsprechenden Commits sucht, mit dem die zu große(n) Datei(en) zum Repo hinzugefügt wurde(n). Ist dieser Pfad bekannt, müssen folgende Befehle verwendet werden:

git filter-branch --tag-name-filter cat --index-filter 'git rm -r --cached --ignore-unmatch /pfad/zur/datei' --prune-empty -f -- --all
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

Mit einem erneuten

git count-objects -v

ist zu überprüfen, ob der Platzverbrauch kleiner geworden ist. Ist dies der Fall, kann das Repo nun mit einem

git push origin --force

auf den Server übertragen werden. Funktioniert dies in der Konsole nicht, weil diese nicht auf Pageant zugreifen kann, kann auch per TortoiseGit gepusht werden, hier einfach im Git Sync Dialog vor dem Push den Haken "Force" aktivieren.

Nun sollte GitLab in der Repo-Übersicht auch die aktualisierte Größe anzeigen und das Projekt nicht mehr über Quota sein.

Sollte nach dieser Operation das Projekt nicht kleiner, sondern evtl. sogar größer geworden sein, bitte beim IT-SD melden.