Agradecemos tu ayuda para compartir nuestras reseñas en referencia a las ciencias informáticas.
Solución:
Sí hay. Cómo retroceder durante un rebase interactivo:
- Obtenga el hash de confirmación de su HEAD actual, por ejemplo con
git rev-parse HEAD
- correr
git rebase --edit-todo
- inserte una selección con ese hash en la parte superior de ese archivo
pick
- correr
git reset --hard HEAD^
Ahora todavía está en el rebase, pero se confirma y puede continuar con el rebase.
git rebase --continue
.
Si no desea que la confirmación deshecha se recoja directamente sin modificaciones, puede agregar edit
en vez de pick
a la lista de tareas pendientes (paso 3).
Anexo: puede recordar más hashes, restablecer a un punto anterior y agregar múltiples selecciones para rehacer más de una confirmación.
Idea de: http://arigrant.com/blog/2014/5/4/git-rebase-stepping-forward-and-back
No, como dijo Magnus.
Sin embargo,
- git-rerere podría acercarse a lo que desea de alguna manera: si hubo resoluciones de conflictos manuales anteriores que no quería perder, puede habilitar
rerere
(resoluciones de conflictos pregrabadas) para que se resuelvan automáticamente de la misma manera en fusiones posteriores. Tenga en cuenta que esto significa que tendrá que recordar qué parte desea resolver de manera diferente la próxima vez (¿presumiblemente el objetivo de tener un paso atrás en primer lugar?) Porque, bueno, rerere asume que desea aplicar la misma resolución nuevamente. .
Si observa la implementación de rebase, es posible que pueda encontrar configuraciones alternativas para GIT_WORK_TREE/GIT_DIR/GIT_INDEX; Entonces, tal vez podría usar comandos de plomería con un reflog para la rebase en progreso branch
?
- esto lo lleva a las profundidades internas no documentadas (más allá de la plomería)
- también podría proponer un parche para reorganizar que implementa
--step-back
En realidad, puedes incluso si no estás haciendo una reorganización interactiva.
Como mencionó johnb003 en su comentario, al reorganizar, en realidad estás realizando una serie de confirmaciones nuevas. Al hacer algo como git log --pretty=oneline --abbrev-commit
, puede ver fácilmente todas las confirmaciones que ya ha realizado a través de la reorganización. Simplemente copie sus hashes para una fácil referencia más adelante.
Entonces git rebase --abort
, git rebase -i
copie los valores hash que desea conservar, posiblemente cámbielos a edit
si desea modificar alguno de ellos, y continuar