Limpieza después de la fusión de git –no-ff

Dos twigs, master y feature , se fusionaron con git merge --no-ff . La twig de feature posterior se eliminó. El tree se ve así:

 * (master) A new feature added to the master |\ | * yet another small commit | * another small commit | * small commit |/ * Master before the feature was added 

Me gustaría limpiar esos pequeños commits del tree para que se vea así:

 * (master) A new feature added to the master * Master before the feature was added 

¿Como hacer eso? El repository local aún no fue presionado.

yo lo haría

 git checkout master git reset --soft <HASH of commit "Master before the feature was added"> git commit -m "A new feature added to the master" 

Alternativamente podrías usar

 git commit -c ORIG_HEAD 

para reutilizar el post de confirmación de la confirmación de fusión original.

Supongamos que su repository se ve así (necesito confirmar SHA)

 * 82daefb - (HEAD, master) A new feature added to the master (15 seconds ago) |\ | * 6e156b0 - yet another small commit (84 seconds ago) | * ccc4753 - another small commit (2 minutes ago) | * e76a659 - small commit (2 minutes ago) |/ * 3041679 - Master before the feature was added (2 minutes ago) 
  1. Recupere la function de sucursal git checkout -b feature && git reset --hard 6e156b0
  2. Restablecer maser a 3041679 git co master && git reset --hard 3041679
  3. git merge feature --squash sucursales git merge feature --squash
  4. Commit merge git commit -m "A new feature added to the master"

finalmente tu tree se verá como

 * 6bf734c - (HEAD, master) A new feature added to the master (68 seconds ago) * 3041679 - Master before the feature was added (5 minutes ago)