Ich habe einen git Baum wieWie lösche ich wirklich einen Git-Zweig (d. H. Alle seine Objekte/Commits entfernen)?
A---B---C topic
/
D---E---F---G master <--
I Thema entfernen möchte und alle Objekte darauf.
ich den SHA-ID Thema beachten Sie, geben Sie dann:
git branch -D topic
git gc # <-- I also tried prune here...
git checkout -b temp <SHA1 ID of topic>
Nach dem letzten Befehl erwarte ich einen Fehler (so etwas wie „Nicht vorhandenes Objekt-ID ...“ erhalten oder somth so.). Allerdings gibt es keinen Fehler und gitk zeigt die gleiche Baumstruktur wie oben ??
Was fehlt mir - ich dachte, GC/Prune soll alle nicht erreichbaren Objekte löschen?
Die Antwort von VonC erklärt die Fakten. Wenn du den "philosophischen" Grund wissen willst, ist es einfach so, dass Git sehr sehr bemüht ist, dich nicht versehentlich etwas löschen zu lassen. 'git gc' selbst soll eine Aufräum-/Umpackoperation sein. Sie müssen etwas stärker sagen, um potentielle neue Arbeiten zu löschen. – Cascabel