remote example check branches all git branch fetch

example - git push



git fetch no busca todas las ramas (8)

El problema se puede ver al verificar la configuración remote.origin.fetch
(Las líneas que comienzan con $ son mensajes Bash con los comandos que escribí. Las otras líneas son el resultado)

$ git config --get remote.origin.fetch +refs/heads/master:refs/remotes/origin/master

Como puede ver, en mi caso, el control remoto se configuró para captar la rama maestra de manera específica y única. Lo arreglé como se muestra a continuación, incluido el segundo comando para verificar los resultados.

$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" $ git config --get remote.origin.fetch +refs/heads/*:refs/remotes/origin/*

El comodín * por supuesto significa todo debajo de ese camino.

Lamentablemente, vi este comentario después de que ya había buscado y encontré la respuesta por prueba y error.

He clonado un repositorio, después de lo cual alguien más ha creado una nueva rama, en la que me gustaría empezar a trabajar. Leí el manual, y parece completamente fácil. Extrañamente, no está funcionando, y todas las publicaciones que he encontrado sugieren que estoy haciendo lo correcto. Así que me someteré a la censura, porque debe haber algo obviamente mal con esto:

La acción correcta parece ser

git fetch git branch -a * master remotes/origin/HEAD --> origin/master remotes/origin/master git checkout -b dev-gml origin/dev-gml

En este punto hay un problema, por alguna razón después de la git fetch no puedo ver la rama remota dev-gml. Por qué no? Si clono el repositorio recientemente, está allí, entonces ciertamente existe la rama remota:

$ mkdir ../gitest $ cd ../gitest $ git clone https://github.com/example/proj.git Cloning into proj... remote: Counting objects: 1155, done. remote: Compressing objects: 100% (383/383), done. remote: Total 1155 (delta 741), reused 1155 (delta 741) Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done. Resolving deltas: 100% (741/741), done. $ cd projdir $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/dev-gml remotes/origin/master

He intentado git update , git pull , git fetch --all , git pretty-please en todas las permutaciones posibles ...


Esto podría deberse a un momento de palma de la cara: si cambia entre varios clones, es fácil encontrarse en el árbol fuente incorrecto tratando de extraer una rama inexistente. Es más fácil cuando los clones tienen nombres similares, o los repos son clones distintos para el mismo proyecto de cada uno de los múltiples colaboradores. Aparentemente, un nuevo clon de git parece resolver ese "problema" cuando el problema real es perder el foco o el contexto de trabajo, o ambos.


Para hacerlo más específico Cree una rama de seguimiento, lo que significa que ahora está rastreando una sucursal remota.

git branch --track branch remote-branch git branch --track exp remotes/origin/experimental

Después de lo cual puedes

git branch # to see the remote tracking branch "exp" created .

Entonces para trabajar en esa rama hacer

git checkout branchname git checkout exp

Después de haber realizado cambios en la rama. Puede capturar y combinar Git con su sucursal de seguimiento remoto para fusionar sus cambios y enviar a la sucursal remota como se muestra a continuación.

git fetch origin git merge origin/experimental git push origin/experimental

Espero que ayude y te dé una idea de cómo funciona esto.


Para rastrear una (nueva) rama remota como una rama local:

git checkout -b <local branch> <remote>/<remote branch>

o (a veces no funciona sin los remotes/ adicionales remotes/ ):

git checkout -b <local branch> remotes/<remote>/<remote branch>

Editar: Necesita ejecutar git remote update git remote update <remote> o git remote update <remote> . Luego puede ejecutar git branch -r para listar las ramas remotas.

Trucos de git útiles


Tuve este problema hoy en un repositorio.

No fue el problema +refs/heads/*:refs/remotes/origin/* según la mejor solución.

El síntoma era simplemente que el git fetch origin o la git fetch simplemente no parecían hacer nada, aunque había ramas remotas para recuperar.

Después de probar muchas cosas, eliminé el control remoto de origen y lo recreé. Parece que eso lo arregló. No sé por qué.

eliminar con: git remote rm origin

y recrear con: git remote add origin <git uri>


Tuve que ir a mis repositorios remotos GitExtensions porque nada aquí parecía estar funcionando. Allí vi que 2 sucursales no tenían un repositorio remoto configurado. después de ajustarlo se ve de la siguiente manera

La rama de notificación noExternal3 aún muestra que no tiene un repositorio remoto. No estoy seguro de qué combo de comandos bash habría encontrado o ajustado eso.


Tuvimos el mismo problema y tienes que usar

git fetch git push origin branch_name git branch -r

Espero que esto ayude a alguien a enfrentar el mismo problema


escríbelo desde la terminal

git fetch --prune.

funciona bien.