Qual è il modo migliore per cambiare l'albero di lavoro ad una specifica impegnarsi prima bisettrice?

StackOverflow https://stackoverflow.com/questions/2096561

  •  21-09-2019
  •  | 
  •  

Domanda

Il mio solito flusso di lavoro quando si inizia una sessione di git bisect è:

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken

Ora, spesso so che le cose funzionavano in passato, ma non ho ancora quale versione era buono lo so, così io di solito voglio tornare il mio albero di lavoro ad uno stato più grande, costruire, testare, ripetere fino a quando trovo un versione di lavoro che posso segnare con git bisect good.

Qual è il modo migliore per fare il "Ripristina il mio albero di lavoro ad uno stato più vecchio" passo? git reset --hard <some_good_rev>? git checkout <some_good_rev>? Qualcos'altro? Si prega di giustificare la vostra risposta.

È stato utile?

Soluzione

Io di solito non so dove il buon giro è, quindi ho avuto modo di trovarlo. Indovinate quanto indietro potrebbe essere buono. Diciamo, 32 giri. Partendo dalla punta di un ramo, e con le directory di lavoro puliti:

$ git checkout HEAD~32

Eseguire il test. Se si tratta di un buon giro, avviare bisettrice. Se non lo è, tornare un po 'di più:

$ git checkout HEAD~32

Sciacquare, schiuma, ripetere.

Perché "git checkout?" Perché "reset git" cambierà che impegnano i punti di diramazione per la sua "punta", ma git checkout non lo faranno.

Altri suggerimenti

Se non si sa per certo qualsiasi versione in cui la funzionalità lavorato (il commit che ha introdotto la funzionalità?), Ti sembra di perdere un sacco (tutti?) Del beneficio di un bisect. Se sai che ci fosse almeno un commit in cui la funzionalità ha funzionato, anche se non è necessariamente il più recente impegno in cui la funzionalità lavorava, solo la bandiera che uno come bene. In caso contrario, si sta praticamente facendo un bisect te stesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top