Accidentalmente fusionó otras twigs al usar `git pull` sin arguments

Sin saber nada mejor, siempre había usado felizmente git pull (sin arguments) para get actualizaciones remotas.

Ahora que estamos usando twigs, esto ha vuelto a atormentarme.

Después de hacer una git pull , noté que mi maestro local se había fusionado con las otras twigs también, mientras que en el control remoto, las twigs no se fusionaron.

Intento descubrir cómo sucedió esto para evitar volver a hacerlo en el futuro, pero hasta ahora no he tenido suerte.

No puse nada extraño en mi file .git / config.

¿Entonces cuando hago git pull, se supone que fusiona otras twigs con la twig actual?

No: git pull solo fusionaría la twig actualmente desprotegida con su twig de seguimiento remoto ' origin/branch '.
Ver:

  • " Tener dificultades para entender git-fetch ".
  • " ¿Cuál es la diferencia entre una twig de seguimiento remoto y una twig en un control remoto? "

Consulte también " " Rastreo de sucursales "y" Rastreo remoto de sucursales " ":

git pull


Incluso si puede declarar varios controles remotos, no puede extraerlos de todos en un solo paso (consulte " extracción / inserción desde múltiples ubicaciones remotas ").

Ver esta respuesta :

En los términos más simples, "git pull" hace un "git fetch" seguido de "git merge".

En el futuro, solo git fetch lugar de git pull .

[Respuesta original] Lo que experimentas es probablemente el comportamiento correcto (y el comportamiento que deseas).

Imagine esta situación: Developer X ha terminado una característica importante en su twig. Ella se fusiona con su maestro.

Cuando ella empuja eso, ¿qué debería pasar cuando tiras?

La solución actual es que su copy de la twig maestra se actualice para que pueda ver y get todo su trabajo (function + fusionar).

Esto puede causar problemas cuando se desarrolla en la twig principal.

La solución es hacer que cada desarrollador trabaje siempre en una sucursal. Cree una sola twig por desarrollador o cree una twig por function / error.

De esta forma, cada desarrollador puede decidir cuándo fusionarse con el maestro (su trabajo -> maestro) y cuándo actualizar su twig de trabajo con cualquier cambio en el maestro.

Más detalles:

  • Un exitoso model de ramificación de Git
  • hginit.com : esto es para Mercurial, pero está escrito muy bien y la tecnología subyacente es tan similar que también es una buena lectura para los usuarios de Git.