2011-03-11 9 views
6

Ho il seguente nel mio ~/.gitconfig(questo è solo qui per aiutarvi a capire che cosa sto guardando):Come sbarazzarsi di "refs/tagliare in due/cattivi" filiali in Git

[alias] 
    lg = log --graph --all --pretty=format:'%Cred%h %Cgreen(%cr)%Creset - %s %C(yellow)%d %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative 

Quando faccio un git log, mi mostra l'albero di commit completo con nomi di rami e roba. Ieri ho iniziato un git bisect e oggi vedo che c'è un ramo refs/bisect/bad nell'output del mio log.

Che cos'è esattamente il ramo refs/bisect/bad e come posso liberarmene?

risposta

10

Quando si utilizza git bisect, utilizza refs/bisect/bad per tracciare l'ultimo commit errato. (Questo ref viene aggiornato quando si fa git bisect bad.)

Ho il sospetto che quello che è successo qui è che si è giunti alla fine del bisect, ed è segnalato il primo male commesso, ma non hai mai terminato la bisezione con git bisect reset, che pulisce i ref che ha creato. Puoi ancora eseguire quel comando, e ti riporterà al punto in cui eri prima di iniziare le bisections - tuttavia, mi assicurerei che il tuo lavoro fosse impegnato e lo stato git fosse pulito prima di farlo, solo per evitare ogni possibile confusione .

Se si utilizza __git_ps1 nel prompt di bash, sarà utile notare che si è ancora in una bisezione emettendo (9dad0bb...)|BISECTING. Ho parlato di __git_ps1 un po 'in another answer, che potrebbe essere utile.

+4

Nelle versioni relativamente recenti di Git, è anche possibile utilizzare 'git bisect reset HEAD' per evitare il commit di commit. – Cascabel

11

Questo è un puntatore per il commit contrassegnato come non valido durante il bisect. È possibile eseguire

git bisect ripristinare

o rimuovere manualmente il puntatore da .git/refs/bisect (ma io non raccomandare che)

Problemi correlati