Lo intenté git branch -r
, pero eso solo enumera ramas remotas que he rastreado localmente. ¿Cómo encuentro la lista de los que no tengo? (No me importa si el comando enumera todas las ramas remotas o solo aquellas que no están rastreadas).
git
branch
git-branch
remote-branch
James A. Rosen
fuente
fuente
git fetch
ygit remote update
no recupera todas las ramas del mando a distancia? Porque de lo contrario, podrías buscar y luego usargit branch -r
...git branch -r
solo me mostraba ramas remotas que había rastreado localmente. Funciona mejor ahora.Respuestas:
Para la gran mayoría [1] de visitantes aquí, la respuesta correcta y más simple a la pregunta "¿Cómo enumero todas las sucursales remotas en Git 1.7+?" es:
Para una pequeña minoría [1]
git branch -r
no funciona. Sigit branch -r
no funciona, intente:Si
git branch -r
esto no funciona, entonces tal como Cascabel dice "has modificado el refspec defecto, por lo quegit fetch
ygit remote update
no recupera todas lasremote
ramas 's" .[1] Al momento de escribir esta nota al pie de página 2018-feb, miré los comentarios y vi que
git branch -r
funciona para la gran mayoría (alrededor del 90% o 125 de 140 ).Si
git branch -r
no funciona, la verificacióngit config --get remote.origin.fetch
contiene un comodín (*
) según esta respuestafuente
git ls-remote [url]
para no tener que clonarlo primero :)git branch -r
dado que esa es la respuesta correcta y más simple, el autor de la pregunta tuvo un caso especial en el que modificó el comportamiento suyogit branch -r
que la mayoría de los usuarios que vienen aquí no verán tenergit branch -r
Tampoco funcionó para mí. Solo enumera las sucursales que ya se rastrean localmente. Perogit ls-remote --heads
enumeró todas las ramas disponibles en el repositorio remoto ...git ls-remote
(y no enumeradas engit branch -r
), se debe ejecutargit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
antes de recuperar como se describe en stackoverflow.com/a/26649770/873282 .git fetch --all
antes para obtener todas las ramas remotas actuales.remote show
muestra todas las ramas en el control remoto, incluidas las que no se rastrean localmente e incluso las que aún no se han recuperado.También intenta mostrar el estado de las ramas en relación con su repositorio local:
fuente
branch_that_is_not_tracked tracked
?branch_that_is_not_tracked
es una rama que no es rastreada por ninguna rama local de git. Sin embargo, se ha recuperado en el repositorio local (por lo que hay una rama remota). Por alguna extraña razóngit remote show
llama a este estadotracked
, a pesar de que no hay una rama local que rastrea el control remoto. En este caso, lo contrario detracked
esnew
, que significa "no obtenido".git branch -r
sugiere que todavía hay una rama remota, perogit remote show origin
muestra esorefs/remotes/origin/my-now-dead-branch stale (use 'git remote prune' to remove)
. Mucho más útil!fuente
git branch -r
que el OP dijo que no era lo suficientemente bueno.git branch -a
ygit branch -r
enumero todas las ramas remotas para mí, no estoy seguro de si lo que dijo el OP es cierto. Acabo de configurar un repositorio de prueba y verifiqué esto (solo tenía el origen de seguimiento maestro / maestro pero aún vi todas las ramas remotas con ambas banderas).git fetch
seguidogit branch -a
, que recientemente comenzó a fallar para mí. Tal vez el comportamiento git fue cambiado?El uso
git branch -r
enumera todas las ramas remotas ygit branch -a
enumera todas las ramas en local y remoto. Sin embargo, estas listas quedan desactualizadas. Para mantener estas listas actualizadas, ejecuteque actualizará su lista de sucursales locales con todas las nuevas del control remoto y eliminará las que ya no estén allí. Ejecutar este comando de actualización sin --prune recuperará nuevas ramas pero no eliminará las que ya no están en el control remoto.
Puede acelerar esta actualización especificando un control remoto, de lo contrario, obtendrá actualizaciones de todos los controles remotos que haya agregado, como así
fuente
Pero
git branch -ar
Deberías hacerlo.
fuente
-r
devuelve ramas remotas. devuelve ramas locales y remotas. Por lo tanto, y ambos producen la misma salida.-a
git branch -a
git branch -ar
También puede hacerlo
git fetch
seguido de agit branch -r
. Sin buscar no verá las ramas más actuales.fuente
git fetch --all
tener todas las sucursales actualesGit Branching - Ramas remotas
Documentación de Git .
fuente
heads/
enrefs/heads/features/my-branch
, gracias!La forma más simple que encontré:
fuente
TL; TR;
Esta es la solución de su problema:
o:
fuente
El mejor comando para ejecutar es
git remote show [remote]
. Esto mostrará todas las sucursales, remotas y locales, con seguimiento y sin seguimiento.Aquí hay un ejemplo de un proyecto de código abierto:
Si solo queremos obtener las ramas remotas, podemos usar
grep
. El comando que nos gustaría usar sería:Con este comando:
También puede crear un alias para esto:
Entonces puedes simplemente correr
git branches
.fuente
Con Git Bash , puedes usar:
fuente
Prueba esto...
fuente
Solo ejecuta un
git fetch
comando. Atraerá todas las ramas remotas a su repositorio local y luego hará unagit branch -a
lista de todas las ramas.fuente
Si hay una rama remota que sabe que debería estar en la lista, pero no aparece en la lista, es posible que desee verificar que su origen esté configurado correctamente con esto:
Si todo está bien, tal vez debería ejecutar una actualización:
Suponiendo que se ejecuta con éxito, debe poder hacer lo que dicen las otras respuestas:
fuente
Usando este comando,
Enumera todas las ramas remotas, incluidos los mensajes de confirmación y los ID de confirmación a los que se refieren las ramas remotas.
fuente
Yo usaría:
Este comando no solo le muestra la lista de todas las ramas, incluidas las ramas remotas que comienzan
/remote
, sino que también le proporciona*
comentarios sobre lo que actualizó y los últimos comentarios de confirmación.fuente
Asegúrese de que el origen remoto que está enumerando es realmente el repositorio que desea y no un clon más antiguo.
fuente
Terminé haciendo un desorden para conseguir lo que quería. Acabo de fusionar ramas del control remoto de origen:
fuente
La respuesta aceptada funciona para mí. Pero me pareció más útil ordenar los commits comenzando por el más reciente.
git branch -r --sort=-committerdate
fuente