¿Qué manera de combinar git?

Digamos que quiero hacer una fusión no rápida (una "fusión real" y definitivamente no una rebase) de una twig featureBranch en un branch master . En aras de la simplicidad, suponga que no hay repositorys remotos (solo hay 1 repository local), y este es el resultado de la function de git checkout featureBranch && git log :

 Switched to branch 'featureBranch' commit 486b01a6db4597a8f02c9f23a16ddaa2d0e18392 Author: xxx <xxx@xxx.com> Date: Mon Sep 28 21:02:00 2015 +0100 C commit 39fde8a6ccd27ad8e5b815f5462ae6267df2e213 Author: xxx <xxx@xxx.com> Date: Mon Sep 28 21:00:34 2015 +0100 A 

Y esta es la salida de git checkout master && git log :

 Switched to branch 'master' commit 903ad86a4395f004dd2f28009b11f93d4c056d0b Author: xxx <xxx@xxx.com> Date: Mon Sep 28 21:00:54 2015 +0100 B commit 39fde8a6ccd27ad8e5b815f5462ae6267df2e213 Author: xxx <xxx@xxx.com> Date: Mon Sep 28 21:00:34 2015 +0100 A 

Es la forma correcta de llevar a cabo la fusión de esta manera:

git checkout master && git merge featureBranch

o así:

git checkout featureBranch && git merge master

Tenga en count que esto no es un duplicado de esta pregunta SO , que se trata de una fusión de avance rápido.

La forma correcta es:

 git checkout master git merge featureBranch 

La razón es que el order de los padres se compromete en la fusión es importante, y el maestro siempre debe ser el primero de los dos. Esto asegura que el comportamiento de git log --first-parent es el esperado. Más detalles en esta publicación de blog: http://devblog.nestoria.com/post/98892582763/maintaining-a-consistent-linear-history-for-git

El método propuesto por marcolz rompería el logging, ya que crea 2 commits de fusión, el primero de los cuales tiene el último commit de twig de característica en el primer lugar (debe estar en el segundo).

La respuesta de Jonathan es esencialmente correcta, pero le falta el detalle en la publicación del blog.

Es más común fusionarse en la twig en la que se encuentra actualmente.

Asi que:

 git checkout master git merge featureBranch 

No te olvides del reflog … si alguna vez te fusionas y te das count de que has cometido un error (antes de presionar) puedes restablecer tu bifurcación a su punto anterior. Ver deshacer una fusión de Git que aún no se ha enviado

Es una buena práctica fusionar primero la twig en la que desea fusionar en su twig de características para resolver posibles conflictos en su twig de características.

 git checkout featureBranch && git merge master 

Cuando se resuelven los conflictos, puede hacer de manera segura:

 git checkout master && git merge featureBranch 

Para forzar una fusión no-ff, podría pasar --no-ff