Tirar con cuidado de Git: combinación selectiva (manual) de origen / maestro a maestro

Al usar git, parece ser una buena idea fetch y merge (como se señala en este blog ) en lugar de simplemente tirar para permitirte ver los cambios antes de fusionarte. Esto parece una forma razonable y segura de hacer las cosas y puedo seguirlo hasta ahora.

Sin embargo, ¿qué sucede si luego hago una git diff entre maestro y origen / maestro y decido que la mayoría de las actualizaciones son buenas, pero hay un par de cosas que corregir? ¿Hay alguna forma de fusionar "manualmente"? Estoy buscando algo similar a la edición que se obtiene después de un conflicto de fusión que le permite decidir sobre cada cambio individual, un poco como git add --patch .

Lo que quiero es tener el poder de editar cosas antes de fusionar difftool / Master en mi propio master, idealmente con mi difftool favorito. Entiendo que esto podría hacerse aplicando los cambios al master y forzando a empujarlo con git push -f , pero esto parece un poco brutal e innecesario.

Por otro lado, cherrypick suena como un nombre muy prometedor, pero solo permite seleccionar confirmaciones, no cambios reales en los files.

¿Cómo se puede hacer una fusión altamente selectiva / manual? Ninguna de las estrategias de fusión de los documentos parece permitir suficiente control manual para esto.

En el momento de hacer la fusión, use el parámetro --no-commit .

 git merge --no-commit <branch> 

Esto detendrá la fusión en el momento de crear la confirmación, dejando su estado como una fusión pendiente, que es exactamente la misma que cuando ocurre un conflicto.

Desde este estado, puede diferenciar y hacer los cambios necesarios.

    Intereting Posts