Git – Sucursales

Estaba leyendo esta publicación , y hay algo que no sé si me equivoqué.

Digamos que estoy en la twig principal , y otro desarrollador está trabajando en una function, y está trabajando en una nueva twig llamada newFeature .

Si estoy en mi twig principal , y saco la twig principal , y luego su nueva twig Naturaleza , ¿se fusionan automáticamente? Lo que quiero decir es que no tengo que hacer

$ git merge newFeature

En cambio, estos serían mis commands:

$ git checkout master #We move to master branch. $ git pull origin master #We pull the master branch to sync. $ git pull origin newFeature #We pull the newFeature branch. 

Como estoy en la twig principal , y estoy tirando de esa otra twig, ¿se fusionan automáticamente?

Recomiendo evitar el command de pull completo. Simplemente ejecuta dos commands para usted: git fetch , que es simple, seguro y directo; y luego otro command que debería, al less conceptualmente, elegir según el resultado de la búsqueda. Pero debes elegir ese command por adelantado , antes de ver el resultado de la búsqueda. Por esta y otras razones, git pull es una herramienta mala, como una motosierra que comienza por sí misma tan pronto como se carga, incluso si aún no está listo para usarla. Claro, parece conveniente, hasta que viste un dedo o dos … 🙂

Dicho esto, el segundo command que ejecuta git pull es, de hecho, normalmente git merge . (Puede configurarlo para ejecutar git rebase en git rebase lugar, y hay muchos otros casos de esquina donde no se puede ejecutar git merge después de todo.) Los arguments precisos que pasa a git merge son / son un poco complicados, especialmente porque algunos de las banderas que puedes pasar a git pull son banderas para git fetch , y otras son banderas que son solo significativas para git rebase , y hay algunas banderas que son útiles en git merge que no puedas pasar git pull en absoluto: otra forma más no es una herramienta muy buena

Por lo tanto, la simple expansión de estos tres commands no es exactamente la misma, pero está lo suficientemente cerca: usted está ejecutando:

 git checkout master git pull origin master git pull origin newFeature 

lo que significa que los cinco commands que Git realmente ejecuta son:

 git checkout master git fetch origin git merge origin/master git fetch origin git merge origin/newFeature 

(ya que git pull solo ejecuta dos commands de Git).

Tenga en count que uno de estos commands de git fetch es probablemente inútil: no hay razón para search dos veces en una sucesión rápida. El paso de git fetch obtiene nuevas confirmaciones que están disponibles en otro Git, al que su Git llama origin . Las git merge el origin/master actualizado y origin/newFeature , uno a la vez (esto es casi seguro lo que usted quiere), en su twig actual.

Exactamente está trayendo el trabajo de newFeature a la sucursal donde se encuentra, recuerde que si no quiere traer todo el trabajo newFeature también puede traer la confirmación.

Estoy de acuerdo con @torek absolutamente. Para responder a la pregunta original: Las dos twigs NO se fusionan automáticamente si / cuando simplemente se git pull cada una. Realiza una operación de "fusión" con respecto a esa twig, pero no modificará ninguna otra twig (por ejemplo, maestra).