2012-02-06 13 views
8

Acabo de sincronizar mi git repo y encontré una regresión. Me gustaría simplemente pasar por la historia hasta que encuentre el compromiso de culpar, pero ha habido una gran fusión que simplemente aparece como una única confirmación cuando lo hago git log.¿Cómo puedo unir fusiones en una historia lineal?

¿Hay alguna manera de aplanar esta fusión en mi sucursal local, así que git log solo tiene un historial lineal que puedo recorrer?

Respuesta

5

Lo que usted está buscando es interactive rebase.

Puede rebase contra el maestro a través de git rebase -i master. Debería ver algo como

pick ba6b4b7 Commit messages here 
pick 744ea3b Another commit message 
pick 33539d5 Commits all around! 

A continuación, puede cambiar el "pick" s después del primero a "calabaza". Esto aplastará a todos en el compromiso superior. También puede cambiar la "selección" superior por "corrección" para cambiar su mensaje de confirmación.

0

Excepto el rebase real, también puede ajustar su consulta. git log --topo-order $head, para cada combinación, mostrará todo el contenido de una rama fusionada justo después de la fusión. Se vería exactamente como si volviera a basar esa rama.

Cuestiones relacionadas