Eliminar múltiples commit git del historial

Estoy trabajando en un proyecto con algunos compañeros de class y estamos usando git para el control de versiones. Uno de los miembros del grupo tenía el nombre de usuario establecido en un nombre diferente al nombre de usuario para la count de git que estaba usando, por lo que después de hacer varias confirmaciones, no apareció como queueborador. Al tratar de arreglar esto, accidentalmente hizo una copy de cada confirmación que se hizo, con su propio nombre de usuario tiene el autor.

¿Hay alguna forma de revisar y borrar estos duplicates del historial sin cambiar realmente el estado del repository?

Editar: por ejemplo, supongamos que el historial de confirmaciones del repository es este:

 "Léame actualizado" - joesmith0x539 
"Marco de interfaz de usuario agregado" - johnnybravo22

Después de que el otro queueborador intentó cambiar su nombre de usuario de johnnybravo22 para decir johnnyb32, la historia se convirtió en:

 "Léame actualizado" - joesmith0x539 
"Léame actualizado" - johnnyb32
"Marco de interfaz de usuario agregado" - johnnybravo22
"Marco agregado de la interfaz de usuario" - johnnyb32

Ahora quiero eliminar todos los duplicates innecesarios que hizo.

tienes que usar SQUASH COMMITS . Pero Changing-Multiple-Commit-Messages permite a otros desarrolladores proporcionar una versión alternativa del mismo cambio.

No incluya ninguna confirmación que ya haya enviado a un server central; al hacerlo, se confundirá a otros desarrolladores al proporcionar una versión alternativa del mismo cambio.

Déjame tomar un ejemplo

1: git rebase -i HEAD~4 # git rebase -i HEAD~4 últimos cuatro commits

2: Este command emergente y editor con pocos commands

 pick 44d59fa Add capybaras page. pick 7d2edea Add capybaras to index. pick 6e8e5d6 Change plural on detail page to 'capybara'. pick e8005f4 Change plural on index page to 'capybara'. 

3: Ellos 2 estaban mejor como uno cometer.

 pick 44d59fa Add capybaras page. pick 7d2edea Add capybaras to index. pick 6e8e5d6 Change plural on detail page to 'capybara'. squash e8005f4 Change plural on index page to 'capybara'. 

Nota: squash combina una confirmación con la confirmación anterior

4: Aparece otro editor, con los commits siendo aplastados

 # This is a combination of 2 commits. # The first commit's message is: Change plural on detail page to 'capybara'. # This is the 2nd commit message: Change plural on index page to 'capybara'. # Please enter the commit message for your changes. Lines starting # with '#' will be ignonetworking, and an empty message aborts the commit 

5: ingrese el post para la nueva confirmación, save y salir

6: git log --oneline

¡Mundo sería feliz otra vez! y espero que esto te ayude!