Actualice todas las sucursales locales con todas las sucursales remotas

¿Cómo anulo todas las sucursales locales con todas las sucursales remotas?

Aquí están mis sucursales locales:

client-side-js-framework client-side-js-framework-2 client-side-js-framework-3 handlebars master 

Y mis twigs remotas:

 client-side-js-framework handlebars master no-network-connection 

Quiero que mis sucursales locales reflejen mis sucursales remotas ya que mis sucursales remotas están más actualizadas. En otras palabras, mis sucursales locales deberían ser:

 client-side-js-framework handlebars master no-network-connection 

¿Se puede hacer esto con uno (o dos) commands, en lugar de básicamente borrar mi repository local y volver a clonarlo?

Lo más probable es que deberías ejecutar:

 git fetch origin 

y luego simplemente elimine (la mayoría o todas) las sucursales locales. La próxima vez que corras, por ejemplo:

 git checkout handlebars 

su Git searchá el handlebars su nombre local, no lo encontrará, searchá algo más para ver si hay exactamente un nombre como origin/handlebars y upstream/handlebars y así sucesivamente (uno para cada control remoto posible).

Siempre y cuando haya exactamente uno de esos nombres, su Git dirá: Aha, debería crear handlebars nombre local utilizando la misma confirmación que el nombre de seguimiento remoto origin/handlebars . En ese instante, obtendrá una sucursal local llamada handlebars que coincida con el origin/handlebars , Git la controlará y estará listo para trabajar. No hay necesidad de arrastrar media docena de nombres locales que no se están trabajando como un set de bolas y cadenas .

Si realmente necesita actualizar cada twig, debe usar un bucle, con un command de actualización por twig para realizar una fusión y un empuje apropiados, a less que sean operaciones de avance rápido que no son realmente una fusión, en cuyo caso:

 git fetch origin 'refs/heads/*:refs/heads/*' 

funcionará, pero no lo haga (vea la bola y el enlace de la cadena).

(Es un poco más complicado si tienes múltiples controles remotos que usan los mismos nombres. En este caso, git checkout --track origin/handlebars logrará el resultado deseado. Mientras tanto también es complicado e imprudente, dejar que git fetch eliminar nombres locales , pero creo que se puede hacer con --prune .)

Básicamente, el git fetch origin actualizará su sucursal local y agregará una bifurcación adicional a su repository local, que está disponible en remoto.

La solución alternativa es

 1. git checkout client-side-js-framework 2. git pull 

Eso es todo 🙂