Cambiar el nombre de varias twigs git

Estoy cambiando a GitHub de un proveedor de git diferente. Saqué todas las twigs a mi local con

for remote in `git branch -r`; do git branch --track $remote; done 

pero en lugar de get el nombre de la twig, obtuve su nombre origin/name así que ahora necesito cambiarles el nombre para que solo sea un name .

¿Alguna idea de cómo cambiar el nombre de los lotes? O tal vez solo sacarlos con el nombre correcto también ayudaría.

 for remote in `git branch -r`; do git branch --track $remote; done 

Las twigs de seguimiento remoto se denominan convencionalmente con su nombre remoto como primer elemento, por lo que git branch -r te muestra, por ejemplo, origin/master , origin/release etc. Pero sus propias twigs no son referidas convencionalmente con un prefijo.

La ortografía completa del origin/master twig de seguimiento remoto es refs/remotes/origin/master , y lo que el command de bifurcación (y cualquier otro command que tome nombres de bifurcación y label que no comiencen ref/ ) está haciendo inferir qué estás después de cómo lo usas.

Entonces, para git branch --track origin/master lo está usando como nombre de sucursal local. Lo que probablemente quieras es

 for remote in `git branch -r`; do git branch --track ${remote#*/} $remote; done 

El #*/ en ${remote#*/} es parte de las características de expansión del parámetro del shell, busca la "expansión del parámetro" en cualquier documento shell, google 'man sh' y encuentra esa sección. Quita la cadena más corta que coincide con el patrón */ de la expansión, por lo que va a tirar de origin/ aquí.

Si tienes 2 repositorys,

El local se llama local

Y el control remoto se llama origin

En la twig principal de local, puede eliminar todas las twigs que comienzan con "origen":

 $ git branch -D origin/name_of_branch $ git branch -D origin name_of_other_branch 

etc.

Entonces,

 $ git fetch origin 

permitirá que el local trabaje con la última versión de origen. Para cada twig que desee desplegar desde el origen:

 $ git checkout -b name_of_branch $ git rebase origin/name_of_branch 

Esto creará la twig "name_of_branch" en local y extraerá los cambios del origen en esa twig.

También quiere asegurarse de que no haya cambios conflictivos en el "origen". Si los hay, publica el problema y podemos discutirlo en otra pregunta.