¿Cuál es la diferencia entre `git fetch origin` y` git remote update origin`?

Respuestas:

133

No hace ninguna diferencia cuando se usa así.

remote updatees un comando de muy alto nivel: admite controles remotos agrupados ( remotes.<group> = <list>) y actualiza todos los controles remotos (excepto aquellos con remote.<name>.skipDefaultUpdateconjunto), pero no ninguna de las opciones más específicas de búsqueda. Sin embargo, bajo el capó, hace exactamente lo mismo que buscar con las opciones predeterminadas.

La respuesta recomendada en remote updatelugar de git fetch fue en realidad recomendarlo sin un nombre remoto, solo por el simple hecho de buscar todo, no solo el que se menciona como argumento. Esto es equivalente a git fetch --all.

Debo agregar la advertencia de que la recuperación y la actualización remota en realidad no usaron la misma ruta de código hasta v1.6.6.1 (lanzada el 23 de diciembre de 2009). Incluso antes de eso, sin embargo, hicieron esencialmente lo mismo, solo usando un código diferente (posiblemente comportándose de manera ligeramente diferente en los casos de esquina, pero no puedo pensar en ninguno en la parte superior de mi cabeza).

Cascabel
fuente
1
Muy interesante. +1. Si miras las notas de la versión de Git (que he compilado aquí: pastebin.com/LNhRhQS3 ), parece que solo 1.7.0 (justo después de 1.6.6.2) permite que " git fetch --all" se use en lugar de " git remote update".
VonC
Ah, en realidad no verifiqué cuando fetch --allentré. Hago todo esto solo por variaciones de git log --grep=...y git describe --containsen mi clon git.git.
Cascabel
Hm, bueno, eso es raro - el commit 9c4a036b es "Enseñar la opción --all a 'git fetch'", y git describe --contains da v1.6.6.1~1^2~9. (La misma versión que el cambio de actualización remota que mencioné en mi respuesta, actualizado para agregar la versión menor allí). ¿Quizás era tarde para entrar en las notas de lanzamiento?
Cascabel
@Jefromi: buena manera de extraer esa información, pero prefiero mirar primero las notas de la versión y me sentí frustrado por la falta de una página para todas las notas de la versión, de ahí mi pequeño copiar y pegar en pastebin.
VonC
@Jefromi: correcto ... ahora tengo que encontrar una manera de agregar todo "lo que se está cocinando en Git" para ver por qué el compromiso 9c4a036b no apareció en el lanzamiento oficial antes de 1.7;)
VonC