fetch git – repasando y modificando los cambios entrantes

He leído que git pull = git fetch + git merge , y que este último suele ser el preferido porque permite revisar los cambios antes de fusionarlos.

Nuestro pequeño equipo de desarrollo comparte un git repo en un server. Mi colega simplemente presionó y yo fui a search, de modo que sus confirmaciones ahora están en mi repository local. Puedo verlos con:

 git log ..origin/mybranch 

e inspeccionarlos con:

 git diff <hash> 

Ahora imaginemos que quiero fusionar los cambios en mi copy de trabajo, pero no me gustan algunas confirmaciones o partes de una confirmación.
Mi pregunta es:

  • ¿Cómo hago para "modificar" una confirmación antes de fusionarla en mi copy de trabajo?
  • en caso de que pueda hacer lo anterior, ¿afectará eso al repository remoto? (He leído que uno no debería rebase después de un push, por ejemplo)
  • en caso de que no pueda hacer lo anterior, ¿cómo arreglo los cambios después de fusionarlos? (por ejemplo, manualmente, …)

En resumen: ¿alguien puede dar una visión general de las acciones que normalmente se realizan entre una "búsqueda" y una "combinación" para revisar y editar los cambios?

Podría hacer una fusión sin comprometer el resultado:

 git merge --no-ff --no-commit <hash> 

Luego restablece el índice (pero no el tree de trabajo que refleja la fusión)

 git reset 

Finalmente, puede git add cualquier file o incluso git add --patch parte de los files que desea mantener en el resultado de esa fusión.
O puede rechazar por completo un file fusionado: git checkout HEAD -- aFile .

Tiene otras opciones en " ¿Cómo fusiona files selectivos con git merge ? "