Jaka jest różnica między „git fetch origin” a „git remote update origin”?

115

W odpowiedzi na pytanie o ściąganie jednego zatwierdzenia na raz z repozytorium git , zalecono mi użycie git remote updatezamiast git fetch. Przeczytałem obie strony podręcznika, ale nie mogę powiedzieć, że zrozumiałem je w całości.

Czy ktoś może mi wyjaśnić, jak git fetch origini get remote update originzachowywać się inaczej?

Norman Ramsey
źródło

Odpowiedzi:

133

W takim przypadku nie ma znaczenia.

remote updatejest poleceniem bardzo wysokiego poziomu - obsługuje zgrupowane piloty ( remotes.<group> = <list>) i aktualizuje wszystkie piloty (z wyjątkiem tych z remote.<name>.skipDefaultUpdateustawieniem), ale nie ma żadnej z bardziej szczegółowych opcji pobierania. Jednak pod maską robi dokładnie to samo, co pobieranie z domyślnymi opcjami.

Odpowiedź zalecająca remote updatezamiast git fetch w rzeczywistości zalecała to bez zdalnej nazwy, tylko po to, aby pobrać wszystko, a nie tylko tę podaną jako argument. Jest to równoważne z git fetch --all.

Powinienem dodać zastrzeżenie, że pobieranie i zdalna aktualizacja nie używały tej samej ścieżki kodowej aż do wersji 1.6.6.1 (wydanej 23 grudnia 2009). Jednak nawet wcześniej robili zasadniczo to samo, po prostu używając innego kodu (prawdopodobnie zachowując się nieco inaczej w przypadkach narożnych, ale nie mogę wymyślić żadnego z głowy).

Cascabel
źródło
1
Bardzo interesujące. +1. Jeśli spojrzysz na informacje o wydaniu Gita (które skompilowałem tutaj: pastebin.com/LNhRhQS3 ), wydaje się, że tylko wersja 1.7.0 (tuż po 1.6.6.2) pozwala na użycie „ git fetch --all” zamiast „ git remote update”.
VonC
Ach, tak naprawdę nie sprawdzałem, kiedy fetch --allwszedłem. Robię to wszystko tylko przez odmiany git log --grep=...i git describe --containsw moim klonie git.git.
Cascabel
Hm, cóż, to dziwne - zatwierdzenie 9c4a036b to „Naucz opcję --all do 'pobierania git'”, a git opisać --contains daje v1.6.6.1~1^2~9. (To samo wydanie, co zmiana zdalnej aktualizacji, o której wspomniałem w mojej odpowiedzi, zaktualizowane, aby dodać tam wersję pomocniczą). Może dopiero późno dostałem się do informacji o wydaniu?
Cascabel
@Jefromi: fajny sposób na wykopanie tych informacji, ale wolę najpierw spojrzeć na informacje o wydaniu i byłem sfrustrowany brakiem jednej strony dla wszystkich informacji o wydaniu, stąd moja mała kopia-wklej w pastebinie.
VonC
@Jefromi: teraz ... teraz muszę znaleźć sposób na zagregowanie wszystkich "co się gotuje w Gicie", aby zobaczyć, dlaczego commit 9c4a036b nie pojawił się w oficjalnym wydaniu przed 1.7;)
VonC