2016-03-18 13 views
32

Ich habe versehentlich einige Remote-Zweige gelöscht, und ich weiß nicht wirklich, was die Konsequenz davon ist (Ich habe in Git-Erweiterungen auf die Schaltfläche "Remote-Zweige abschneiden" geklickt und dachte, es würde einen Remote-Zweig löschen).Was ist Git Beschneiden?

Die offizielle Dokumentation sagt "git-Prune - Alle nicht erreichbaren Objekte aus der Objektdatenbank löschen". Ich verstehe nicht wirklich, was das bedeutet. Ich nehme an, das könnte verschmolzene Zweige entfernt haben, aber ich bin mir nicht wirklich sicher.

+0

Mögliches Duplikat von http://stackoverflow.com/questions/4040717/git-remote-prune-didnt-show-as-many-pruned-branches-as-i-expected – Raghavan

+0

Darf es sich lohnen, 'git gc ': https://git-scm.com/docs/git-prune auch. – swdon

Antwort

33

"Remote-Verzweigungen entfernen" in Git-Erweiterungen führt git remote prune Befehl aus, der Ihre lokalen Remote-Tracking-Zweige entfernt, wo die Verzweigung nicht mehr auf der Remote vorhanden ist.

Siehe hier: https://git-scm.com/docs/git-remote#git-remote-empruneem

+0

, so gibt es grundsätzlich Priorität für Ihre Fernbedienung und passen Sie Ihre lokale Anpassung an Ihre Remote-Niederlassungen? – Honey

+0

@Honey Nein, es entfernt nur die lokalen ** Remote-Tracking-Zweige **, normale Zweige werden nicht berührt. – 1615903

14

Dieser Müll sammelt einfach Ihre Zweige.

Das bedeutet, wenn ein Objekt (ein Commit) in keinem der Vorfahren Ihres Zweiges erreicht werden kann, wird es für die Git-Datenbank entfernt und kann als solches nicht mehr erreicht werden.

Dies räumt nur ein wenig das Git-Repository auf und macht es leichter.

+0

Laut der Dokumentation, für Hausaufgaben wie diese kann es besser sein, eine 'git gc' anstatt eine' git prune' zu ​​machen, die im Wesentlichen auch eine git prune tut. – swdon

0

Es Remote-Feature Zweige sein, die entfernt werden, nachdem wir sie in Master verschmelzen. Möglicherweise haben wir die Feature-Zweige als Bereinigungsfunktion gelöscht. Wenn Sie jedoch den gelöschten Zweig auf dem lokalen System ausgecheckt und den Status als Nachverfolgung festgelegt haben, löscht git pull diese lokalen Zweige nicht, da diese bereits vom Server getrennt sind. Um diese Art von lokalen Waisen Filialen zu bereinigen, wird git prune Befehl nützlich sein, um zu helfen.