304 votes

Comment séparer un commit Git enterré dans l'historique ?

J'ai gâché mon historique et je veux y apporter quelques modifications. Le problème est que j'ai un commit avec deux changements sans rapport, et ce commit est entouré par d'autres changements dans mon historique local (non poussé).

Je veux diviser ce commit avant de le pousser, mais la plupart des guides que je vois concernent la division du commit le plus récent, ou des changements locaux non validés. Est-il possible de faire cela à un commit qui est un peu enterré dans l'histoire, sans avoir à "refaire" mes commits depuis lors ?

-2voto

Si vous n'avez pas encore poussé, utilisez simplement git rebase . Encore mieux, utilisez git rebase -i pour déplacer les commits de manière interactive. Vous pouvez déplacer le commit incriminé vers l'avant, puis le diviser comme vous le souhaitez et déplacer les patchs vers l'arrière (si nécessaire).

14 votes

Il n'y a pas besoin de le déplacer. Divisez-le où il est.

1 votes

Malheureusement, cela ne fonctionne pas pour moi car une partie de l'historique après le commit en dépend, je suis donc un peu limité. Cependant, cela aurait été mon premier choix.

0 votes

@Ben : c'est bon - les commits suivants n'auront pas besoin d'être modifiés du tout (en supposant que vous gardez tous les changements, plutôt que d'en jeter certains). Plus d'informations ici - stackoverflow.com/questions/1440050/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X