¿Cuál es la mejor manera de cambiar el árbol de trabajo a un determinado compromiso antes de la bisección?

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Mi flujo de trabajo habitual al iniciar un git bisect la sesión es:

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

Ahora, a menudo, sé que las cosas que funcionó en el pasado, pero aún no sé que versión era bueno, así que por lo general quieren volver a mi árbol de trabajo a un mayor estado, construir, probar, repetir hasta encontrar una versión de trabajo que me puede marcar con git bisect good.

¿Cuál es la mejor manera de hacer el "revertir mi árbol de trabajo a un mayor estado de" paso? git reset --hard <some_good_rev>? git checkout <some_good_rev>?Algo más?Por favor, justifique su respuesta.

¿Fue útil?

Solución

Yo por lo general no saben donde los buenos rev es, así que tengo que encontrar.Supongo que ¿hasta qué punto puede ser bueno.Digamos, 32 revoluciones.A partir de la punta de una rama, y con la limpieza de directorios de trabajo:

$ git checkout HEAD~32

Ejecutar la prueba.Si es una buena rev, inicio de la bisección.Si no, volver algunos más:

$ git checkout HEAD~32

Enjuague, espuma, repetir.

¿Por qué "git checkout?" Porque "git reset" cambio de que se comprometan los puntos de ramificación como su "punta", pero git checkout no.

Otros consejos

Si no sabe con seguridad cualquier versión donde la funcionalidad trabajó (la confirmación que introduce la funcionalidad?), Que parecen perder mucho (todos?) De la prestación de un bisect. Si sabe que había por lo menos un commit donde la funcionalidad trabajó, aunque no es necesariamente el más reciente cometer donde la funcionalidad trabajó, bandera sólo que uno tan bueno. De lo contrario, que está básicamente haciendo un bisect mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top