remota - cómo reordenar compromisos en Git de forma no interactiva
git push example (3)
¿Qué comando (s) de Git no interactivo logran el cambio de Antes a Después?
Antes de:
A---B---C---D
Después:
A---C''---B''---D''
En su caso, puede cambiar de forma interactiva: git rebase -i HEAD~4
Luego, puede simplemente reordenar sus selecciones
Por ejemplo, agreguemos tres archivos más a nuestra sucursal:
git add A
git commit -m "A"
git add B
git commit -m "B"
git add C
git commit -m "C"
Su shortlog será:
$ git shortlog
(3):
A
B
C
Si quieres reordenar B con C:
$ git rebase -i HEAD~2
pick 1f9133d B
pick 33f41be C
Usted simplemente re-ordena que sean:
pick 33f41be C
pick 1f9133d B
Cuando haya terminado de escribir, consulte el shortlog:
$ git shortlog
(3):
A
C
B
Puede hacer lo mismo con todas las confirmaciones reordenando. Es como lo que ves es lo que obtienes, lo cual es muy bueno :)
Prueba esto:
git reset --hard A
git cherry-pick C
git cherry-pick B
git cherry-pick D
Puede haber una manera con git rebase
, pero realmente no lo entendí.
Ver ¿Cómo ejecuto git rebase --interactive de manera no interactiva? para usar git rebase --interactivo de manera no interactiva.
Luego, si tiene criterios formales para reordenar commits, puede hacer un script que, por ejemplo, aplanar realmente una fusión de git para reordenar commits antes de la fecha de confirmación original.