2016-03-18 9 views
32

Ho accidentalmente potato alcuni rami remoti e non so davvero quale sia la conseguenza di ciò (ho fatto clic sul pulsante "Prune remote branches" in Git Extensions, pensando che eliminerebbe un ramo remoto).Che cos'è la potatura Git?

La documentazione ufficiale dice "git-prune - Elimina tutti gli oggetti non raggiungibili dal database degli oggetti". Non capisco davvero cosa significhi. Immagino che questo potrebbe aver rimosso i rami uniti, ma non ne sono sicuro.

+0

Possibile duplicato di http://stackoverflow.com/questions/4040717/git-remote-prune-didnt-show-as-many-pruned-branches-as-i-expected – Raghavan

+0

Può valere la pena guardare 'git gc ': https://git-scm.com/docs/git-prune anche. – swdon

risposta

33

"Eliminare diramazioni remote" in Git Extensions esegue il comando git remote prune, che rimuove i rami di rilevamento remoto locali in cui il ramo non esiste più sul telecomando.

vedere qui: https://git-scm.com/docs/git-remote#git-remote-empruneem

+0

quindi in pratica dà priorità al tuo telecomando e regola il tuo locale in modo che corrisponda alle tue filiali remote? – Honey

+0

@ No, rimuove solo i rami ** localmente remoti **, i rami normali non vengono toccati. – 1615903

14

Questa semplice raccolta raccoglie i tuoi rami.

Questo significa che se un oggetto (un commit) non può essere raggiunto in nessuno degli antenati del proprio ramo, verrà rimosso per il database git e come tale non potrebbe essere più raggiunto.

Questo pulisce solo un po 'il repository git e lo rende più leggero.

+0

Secondo la documentazione, per le attività di housekeeping come questa potrebbe essere meglio fare un 'git gc' piuttosto che un' git prune' che essenzialmente farà anche un git prune. – swdon

0

Ci possono essere Rami di funzione remoti che vengono rimossi dopo che unirle in master. Potremmo aver cancellato i rami delle funzionalità come metodo di pulizia. Ma se avessi estratto il ramo cancellato nel sistema locale e impostato lo stato come tracciamento, git pull non cancellerebbe quei rami locali (perché quelli sono già stati disconnessi dal server). Per ripulire quel tipo di filiali orfane locali, il comando git prune sarà utile per aiutare.

Problemi correlati