2013-02-23 9 views
11

In meinem ersten Versuch, etwas mit Git zu tun, habe ich GitHub für Windows verwendet. Da es ein einfaches und ziemlich primitives Werkzeug ist, entschied ich mich, SmartGit auszuprobieren. Als ich mich umsah, entdeckte ich, dass ich Überreste über meine Tests habe - etwas, das "verlorene Köpfe" genannt wird. Wie kann ich diesen Müll loswerden? Es schien, dassWie kann ich "Lost heads" loswerden?

git gc --prune=now 

oder etwas ähnliches sollte funktionieren, aber nichts geändert. Ich habe versucht zu googeln, aber jeder hat versucht, Reverse-Sache - Wiederherstellung verlorenen Commits von verlorenen Kopf oder etwas ähnliches.

Antwort

10

Nach der man page, git gc wird nicht Müll sammeln Dateien, die durch die "Reflogs" (.git/logs/<ref-name> Dateien in Ihrem Repository) verwiesen werden. Diese HEADs sind genau das, was SmartGit/Hg anzeigt, und wenn Sie diese Protokolle entfernen, sollten die nicht referenzierten Commits von einer git gc --prune=now erfasst werden.

Warnung Wenn es keinen wirklich guten Grund gibt, diese Commits vollständig zu entfernen (z. B. das Entfernen sensibler Daten), sollten Sie das nicht tun - vielleicht interessieren Sie sich später für genau eines dieser Commits . Zumindest ist das Zurückfordern von Speicherplatz meiner Meinung nach kein guter Grund.

+1

das Zurückfordern von Speicherplatz ist nicht mein Grund (mein git-Repository benötigt weniger als 0,01% des verfügbaren Speicherplatzes) - Ich möchte "aaaeaee test 2626" überall loswerden. – Bulwersator

+0

Nach einiger Zeit ist es schwierig zu finden, wenn ich Hunderte von ihnen habe. Das wäre ein berechtigter Grund für mich. – pevik

+0

@pevik, wenn viele verlorene Köpfe das Log verwirrend machen, einfach die Option deaktivieren und erst bei Bedarf erneut prüfen. – mstrap

Verwandte Themen