Ho un albero git comeCome cancellare VERAMENTE un ramo git (ad esempio rimuovere tutti i suoi oggetti/commit)?
A---B---C topic
/
D---E---F---G master <--
Vorrei rimuovere argomento e tutti gli oggetti su di esso.
rilevo l'SHA ID di argomento, quindi digitare:
git branch -D topic
git gc # <-- I also tried prune here...
git checkout -b temp <SHA1 ID of topic>
Dopo l'ultimo comando mi aspetto di ottenere un errore (qualcosa come "ID oggetto inesistente ..." o somth del genere.). Tuttavia non c'è nessun errore e gitk mostra la stessa struttura ad albero di cui sopra ??
Cosa mi manca? Ho pensato che gc/prune cancellasse tutti gli oggetti non raggiungibili?
La risposta di VonC spiega i fatti della questione. Se vuoi conoscere la ragione "filosofica", è semplicemente che git ci prova molto duramente a non lasciarti cancellare accidentalmente nulla. 'git gc' da solo è destinato ad essere un'operazione di cleanup/repacking. Devi dire qualcosa di più forte per farlo potenzialmente cancellare il lavoro recente. – Cascabel