Qual é a diferença entre `git fetch origin` e` git remote update origin`?

Respostas:

133

Não faz diferença quando usado assim.

remote updateé um comando de alto nível - ele suporta remotos agrupados ( remotes.<group> = <list>) e atualiza todos os remotos (exceto aqueles com remote.<name>.skipDefaultUpdateset), mas não qualquer uma das opções mais específicas de busca. Por trás, porém, ele faz exatamente a mesma coisa que buscar com as opções padrão.

A resposta recomendando em remote updatevez de git fetch era, na verdade, recomendá-lo sem um nome remoto, apenas por uma questão de buscar tudo, não apenas aquele nomeado como um argumento. Isso é equivalente a git fetch --all.

Devo acrescentar a ressalva de que fetch e remote update não usavam o mesmo codepath até a v1.6.6.1 (lançado em 23 de dezembro de 2009). Mesmo antes disso, porém, eles faziam essencialmente a mesma coisa, apenas usando um código diferente (possivelmente se comportando de maneira um pouco diferente em casos extremos, mas não consigo pensar em nenhum de cabeça).

Cascabel
fonte
1
Muito interessante. +1. Se você olhar as notas de lançamento do Git (que eu compilei aqui: pastebin.com/LNhRhQS3 ), parece que apenas 1.7.0 (logo após 1.6.6.2) permite " git fetch --all" ser usado no lugar de " git remote update".
VonC
Ah, eu realmente não verifiquei quando fetch --allentrei. Eu faço tudo isso apenas por variações de git log --grep=...e git describe --containsno meu clone git.git.
Cascabel
Hm, bem, isso é estranho - commit 9c4a036b é "Ensine a opção --all para 'git fetch'" e git describe --contains dá v1.6.6.1~1^2~9. (Mesma versão da mudança de atualização remota que mencionei na minha resposta, atualizada para adicionar a versão de lançamento secundária lá). Talvez fosse tarde para entrar nas notas de lançamento?
Cascabel
@Jefromi: ótima maneira de extrair essas informações, mas eu prefiro olhar primeiro as notas de lançamento e fiquei frustrado com a falta de uma página para todas as notas de lançamento, daí meu pequeno copiar e colar no pastebin.
VonC
@Jefromi: certo ... agora eu tenho que encontrar uma maneira de agregar todo o "o que está acontecendo no Git" para ver por que o commit 9c4a036b não chegou ao lançamento oficial antes de 1.7;)
VonC