¿Cuándo actualiza Git la lista de sucursales remotas?

496

El uso git branch --allmuestra todos los controles remotos las sucursales y locales . ¿Cuándo actualiza Git esta lista?

En tirón / empuje? ¿Y cómo lo actualizo con Git Bash ?

BendEg
fuente
55
Como nota, git ls-remotepodría ser interesante aquí.
jthill

Respuestas:

1221

Para actualizar la lista local de sucursales remotas:

git remote update origin --prune

Para mostrar todas las sucursales locales y remotas que Git (local) conoce

git branch -a
centralcmd
fuente
143
git remote update origin --prunees lo que estaba buscando gracias
WonderLand
66
Sobre la diferencia entre esta respuesta, que usa git remote update, y la respuesta aceptada, que usa git fetch, vea aquí
The Red Pea
66
Esta es la respuesta correcta. git fetchno eliminó mi caché local de ramas remotas. Solo --prunepude limpiarlo todo.
Felipe Alvarez
23
Puede hacer que git haga esto automáticamente congit config remote.origin.prune true
kjhf
8
git remote prune origintiene el mismo efecto y escribes menos.
Dvin
27

Creo que si corres git branch --all desde Bash, la lista de sucursales remotas y locales que verá reflejará lo que su Git local "sabe" al momento de ejecutar el comando. Debido a que su Git siempre está actualizado con respecto a las sucursales locales en su sistema, la lista de sucursales locales siempre será precisa.

Sin embargo, para sucursales remotas este no tiene por qué ser el caso. Su Git local solo conoce las ramas remotas que ha visto en la última búsqueda (o extracción). Por lo tanto, es posible que pueda ejecutar git branch --ally no ver una nueva rama remota que apareció después de la última vez que buscó o sacó.

Para asegurarse de que su lista de sucursales local y remota esté actualizada, puede hacer una git fetch antes de ejecutarla git branch --all.

Para obtener más información, las ramas "remotas" que aparecen cuando ejecuta git branch --allno son realmente remotas; En realidad son locales. Por ejemplo, supongamos que hay una rama en el control remoto llamada featureque ha extraído al menos una vez en su Git local. Verás una origin/featurelista como una rama cuando corras git branch --all. Pero esta rama es en realidad una rama local de Git. Cuando lo haga git fetch origin, esta rama de seguimiento se actualizará con cualquier cambio nuevo desde el control remoto. Esta es la razón por la cual su estado local puede quedar obsoleto, porque puede haber nuevas sucursales remotas o sus sucursales de seguimiento pueden quedar obsoletas.

Tim Biegeleisen
fuente
44
Sí, lo git fetchhice.
BendEg
14
Nota para los votantes negativos: si siente que la información correcta con una explicación bien intencionada merece un voto negativo, al menos hable y deje un comentario.
Tim Biegeleisen el
3
git fetchno funciona para mí, necesito agregar --prune. Por cierto, no soy downvoter;)
Deqing
3
git fetchno elimina las ramas remotas eliminadas. Esa es probablemente la razón por la cual algunas personas
votaron negativamente
@ JérômeMEVEL Es una maravilla para mí que la respuesta aceptada ahora tenga 1000 votos a favor. Eso es una locura ... desearía tener ese tipo de exposición :-)
Tim Biegeleisen
24

El OP no solicitó la limpieza de todos los controles remotos, sino de todas las ramas del control remoto predeterminado.

Entonces git fetch --prunees lo que debe usarse.

Ajuste git config remote.origin.prune true hace --pruneautomático. En ese caso git fetch, también podará ramas remotas obsoletas de la copia local. Vea también Poda automática con Git fetch o pull .

Tenga en cuenta que esto no limpia las sucursales locales que ya no están rastreando una sucursal remota. Consulte Cómo podar ramas de seguimiento locales que ya no existen en remoto para eso.

Oliver
fuente
Para hacerlo un poco más cortogit fetch -p
Michael Warner
2

Use git fetchpara buscar todas las ramas creadas más recientemente.

vvv
fuente
1
git fetchno cambió nada para mí con git 2.17.1. ¿Qué versión y opciones has estado usando?
PointedEars
2
Necesitas --pruneo git config remote.NAME.prune truepara esto para resolver la pregunta de OP
Oliver
-1

Si está utilizando Eclipse y desea ver nuevas sucursales desde arriba;

En la perspectiva de Git, haga clic con el botón derecho en un repositorio de Git y luego elija "Recuperar de Upstream". Esto busca nuevas ramas remotas.

Arma Selman
fuente
-8

Si está utilizando Eclipse,

  1. Abrir "Repositorios Git"
  2. Encuentra tu repositorio.
  3. Abra "Ramas" y luego "Seguimiento remoto".

Git

Todos deberían estar allí. Haga clic derecho y "pagar".

markthegrea
fuente
¿Cómo responde esto a la pregunta? - "¿Cuándo actualiza Git la lista de ramas remotas?"
Peter Mortensen
Cuando quise refrescar mis sucursales locales en eclipse, busqué en Google y me llevó hasta aquí. Esta publicación realmente ha ayudado a algunas personas, ya que ha tenido algunos votos positivos. Quizás entendí mal la pregunta. Para mí, Eclipse IS Git (la interfaz). Perdón por ofender a todos!
markthegrea