comment utiliser git rebase pour nettoyer une histoire alambiquée

Après avoir travaillé pendant plusieurs semaines avec une demi-douzaine de différentes branches et se confond, à la fois sur mon portable de travail et de mon bureau à la maison, mon histoire a obtenu un peu compliquée. Par exemple, je viens de faire une extraction, puis a fusionné maître avec origin/master. Maintenant, quand je fais git show-branches, la sortie ressemble à ceci:

! [login] a Changé de nom de domaine. 
! [master] de Fusion branche distante 'origin/master' 
! [migrer-1.9] Migration vers 1.9.1 sur Heroku 
! [rebase-maître] de Fusion branche distante 'origin/master' 
---- 
- - [master] de Fusion branche distante 'origin/master' 
+ + [maître^2] Un peu de réorganisation et de nettoyage. 
- - [master^2^] Fusion de la branche 'rpx-login" 
+ + [maître^2^^2], a Commenté certaines de journalisation de débogage. 
+ + [maître^2^^2^] Singe-patché Rack::Demande n ° ip 
+ + [maître^2^^2~2] dump chaque demande pour ouvrir une session 
.... 

Je voudrais nettoyer avec un git rebase. J'ai créé une nouvelle branche, rebase-maître, à cette fin, et sur cette branche essayé git rebase <commun ancêtre>. Cependant, j'ai à résoudre de nombreux conflits, et le résultat final sur la branche git rebase-maître ne correspond plus à la version correspondante sur le maître, qui a déjà été testé et fonctionne!

J'ai pensé que j'ai vu une solution à cela quelque part, mais ne peut pas trouver plus. Personne ne sait comment faire cela? Ou ces alambiqué ref noms aller loin quand j'ai commencer la suppression de l'onu nécessaire branches que j'ai déjà fusionné avec?

Je suis le seul développeur sur ce projet, donc il n'y a personne d'autre qui en sera affecté.

😉 Philosophique note: l'Histoire devient confuse. C'est la réalité de la vie. Get over it.

OriginalL'auteur Lawrence I. Siden | 2010-06-11