Git Gui: Immer wieder "Dieses Repository hat derzeit ungefähr 320 lose Objekte."

87

Jedes Mal, wenn ich Git Gui für ein bestimmtes Projekt starte, erhalte ich folgende Meldung:

Dieses Repository enthält derzeit ungefähr 320 lose Objekte.

Geben Sie hier die Bildbeschreibung ein

Ich klicke dann auf Ja und erhalte diesen Dialog:

Geben Sie hier die Bildbeschreibung ein

Die Sache ist, wenn ich Git Gui wieder öffne, bekomme ich genau die gleiche Nachricht , wieder ungefähr 320 lose Objekte! Es ist, als hätte das Klicken auf Ja überhaupt keine Auswirkung.

Sashoalm
quelle
Können Sie die Ausgabe von posten git count-objects -v?
CB Bailey
Mögliches Duplikat des Überspringens des
Popups
5
@ TheCodeArtist Danke, ich habe dort die Antwort gefunden. Das git gcexplizite Ausführen über die Befehlszeile hat für mich gemäß diesem Kommentar funktioniert .
Sashoalm

Antworten:

75

Überspringen Sie einfach das Popup, da das Überspringen des Popups "Loose Object" beim Ausführen von "git gui" in der akzeptierten Antwort darauf hindeutet, dass Git Ihnen ein mögliches Leistungsproblem mitteilt. Dies sollte behoben werden, indem dieser Befehl über die Befehlszeile ausgeführt wird:

cd path/to/your/git/repo
git gc --aggressive

Aus der Ausgabe von git help gc:

Führt eine Reihe von Verwaltungsaufgaben im aktuellen Repository aus, z. B. das Komprimieren von Dateirevisionen (um den Speicherplatz zu reduzieren und die Leistung zu steigern) und das Entfernen nicht erreichbarer Objekte, die möglicherweise aus früheren Aufrufen von git add erstellt wurden.

Benutzer werden aufgefordert, diese Aufgabe regelmäßig in jedem Repository auszuführen, um eine gute Speicherplatzauslastung und eine gute Betriebsleistung zu gewährleisten.

--aggressiv

Normalerweise läuft git gc sehr schnell und bietet gleichzeitig eine gute Auslastung und Leistung des Speicherplatzes. Diese Option führt dazu, dass git gc das Repository aggressiver optimiert, was viel mehr Zeit in Anspruch nimmt. Die Auswirkungen dieser Optimierung bleiben bestehen, sodass diese Option nur gelegentlich verwendet werden muss. alle paar hundert Wechselsätze oder so.

Dies sollte verhindern, dass die Eingabeaufforderung für eine Weile angezeigt wird.

Greg Burghardt
quelle
18
Was seltsam ist, ist, dass das einfache Ausführen git gcvon der Befehlszeile es für mich behoben hat. git guigit gc --extra-unaggressive
Kann
38
git prunescheint es zu beheben, wenn git gcnicht.
Mahn
1
Sie möchten im Allgemeinen nicht mit laufen --aggressive; Dies führt gitdazu , dass Deltas neu berechnet werden, was normalerweise unproduktiv und sehr zeitaufwändig ist. siehe diesen Beitrag - die manSeite ist irreführend. Wahrscheinlich git gcreicht in diesem Fall einfach nur .
Jeff Clites
15
Musste verwenden --prune=all, um die Nachricht loszuwerden. Weder git gcin der Kommandozeile noch in den Optionen --aggressiveoder --prunehat den Trick gemacht.
Morgengrauen
1
@JeffClites Der Artikel, auf den Sie sich beziehen, ist (ab diesem Datum) 11 Jahre alt und lautet: "Aus diesem Grund wird --aggressive wahrscheinlich aus den Manpages entfernt und für eine Weile als undokumentiertes Feature belassen." Ohne weiter zu graben, scheint es seltsam, dass die kaputte Nachricht immer noch da ist. Gibt es eine Möglichkeit, dass das Verhalten geändert wurde, seit der Artikel geschrieben wurde?
Pipe
1

Ich benutze Befehl:

git gc --prune = jetzt

und nicht mehr zu viele Warnungen vor losen Objekten, nachdem dies erledigt ist.

Referenzquelle: https://git-scm.com/docs/git-gc

AdvenC
quelle