Dieser Artikel bietet Strategien und Tools zum Identifizieren und Entfernen unnötiger Dateien aus Git-Repositorys, um den Speicherplatz zu optimieren und die Leistung zu verbessern. Das Hauptproblem, das diskutiert wird, ist die Anhäufung von baumelnden Objekten, großen Dateien und untr
Um unnötige Dateien aus einem Git-Repository zu identifizieren und zu entfernen, befolgen Sie diese Schritte:
git gc --prune
to remove dangling objects: This command removes objects that are unreachable from any commit. Dangling objects can accumulate over time when you delete branches or commits.git filter-branch
to rewrite history: This command allows you to remove or modify specific files from the entire history of a branch. However, it's important to proceed cautiously as it rewrites the history of the repository.git ls-files -s
to identify large files and consider moving them to a separate location.git clean -n
to list untracked files and git clean -f
to remove them.After a merge or branch deletion, follow these cleanup best practices:
git branch -d <branch-name>
to delete the branch.git push <remote-name> --delete <branch-name>
.git reflog expire --expire=<duration>
to prune old entries in the reflog.git reset --hard <commit-hash>
Dieser Befehl entfernt Objekte, die aus keinem Commit erreichbar sind. Hängende Objekte können sich im Laufe der Zeit ansammeln, wenn Sie Zweige oder Commits löschen.git filter-branch
, um den Verlauf neu zu schreiben:git ls-files -s
, um große Dateien zu identifizieren und darüber nachzudenken, sie an einen separaten Speicherort zu verschieben.
git clean -n
, um nicht verfolgte Dateien aufzulisten, und git clean -f
, um sie zu entfernen.
git branch -d <branch-name>
, um den Zweig zu löschen.git push <remote-name> --delete <branch-name>
.🎜🎜🎜Reflog bereinigen:🎜 Das Reflog zeichnet alle im Repository durchgeführten Aktionen auf. Verwenden Sie git reflog expire --expire=<duration>
, um alte Einträge im Reflog zu bereinigen.🎜🎜🎜HEAD zurücksetzen:🎜 Wenn Sie das Repository auf einen bestimmten Commit zurücksetzen möchten, verwenden Sie git reset --hard <commit-hash>
. Dadurch werden alle nicht festgeschriebenen Änderungen entfernt und das angegebene Festschreiben zum neuen HEAD gemacht.🎜🎜🎜Automatisierte Bereinigungstools🎜🎜Es stehen mehrere Tools und Skripte zur Verfügung, um den Bereinigungsprozess in Git-Repositorys zu automatisieren:🎜🎜🎜🎜git-cleanup:🎜 Ein Befehl -line-Tool, das verschiedene Bereinigungsbefehle bereitstellt, z. B. das Entfernen nicht verfolgter Dateien, leerer Verzeichnisse und Reflogs.🎜🎜🎜git-prune:🎜 Ein Shell-Skript, das dabei hilft, baumelnde Commits, Tags und Branches zu bereinigen.🎜🎜🎜git-sweep: 🎜 Ein Ruby-Skript, das große, nicht referenzierte Dateien aus einem Git-Repository identifiziert und entfernt.🎜🎜🎜git-annex:🎜 Ein Tool, mit dem Sie große Dateien aus dem Haupt-Repository verschieben und gleichzeitig den Überblick behalten können.🎜🎜Das obige ist der detaillierte Inhalt vonGit-Warehouse-Bereinigung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!