2010-04-22 10 views
110

W odpowiedzi na a question about pulling one commit at a time from a git repository, zalecano użycie git remote update zamiast git fetch. Czytałem obie strony podręcznika, ale nie mogę powiedzieć, że zrozumiałem w całości.Jaka jest różnica między `git fetch origin` i` git remote update origin`?

Czy ktoś może mi wyjaśnić, jak zachowuje się inaczej?

+3

możliwy duplikat [Różnice między zdalną aktualizacją git a pobieraniem?] (Http://stackoverflow.com/questions/1856499/differences-between-git-remote-update-and-fetch) –

Odpowiedz

128

Nie ma znaczenia, gdy jest używany w ten sposób.

remote update to komenda bardzo wysokim poziomie - obsługuje pogrupowane piloty (remotes.<group> = <list>) i aktualizowanie wszystkie piloty (z wyjątkiem tych z remote.<name>.skipDefaultUpdate zestawie), ale nie każdy z bardziej szczegółowych opcji pobierania. Jednak pod maską robi to samo, co pobieranie z domyślnymi opcjami.

Odpowiedź zalecająca remote update zamiast git fetch była w rzeczywistości zalecana bez nazwy zdalnej, tylko ze względu na pobranie wszystkich, a nie tylko tych nazwanych jako argument. Jest to odpowiednik git fetch --all.

Powinienem dodać zastrzeżenie, że pobieranie i zdalna aktualizacja w rzeczywistości nie używały tej samej strony kodowej do wersji 1.6.6.1 (wydanej 23 grudnia 2009 r.). Jednak przedtem, w zasadzie, robili to samo, po prostu używając innego kodu (prawdopodobnie zachowując się nieco inaczej w przypadkach narożnych, ale nie mogę myśleć o niczym z góry mojej głowy).

+0

Bardzo interesujące. +1. Jeśli spojrzysz na notatki do wydania Git (które skompilowałem tutaj: http://pastebin.com/LNhRhQS3), wydaje się, że tylko 1.7.0 (zaraz po 1.6.6.2) pozwala "' git fetch --all' "do użycia w miejsce" 'git remote update'". – VonC

+0

Ah, faktycznie nie sprawdzałem, kiedy 'fetch --all' wszedł do systemu. Robię to wszystko przez odmiany' git log --grep = ... 'i' git opisują -contains' w moim git. git clone. – Cascabel

+0

Hm, cóż, to dziwne - commit 9c4a036b to "Naucz się opcji --all do" git fetch "", a git opis - zawiera '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 mniejszą wersję wydania). Może po prostu spóźniłeś się z wydaniem? – Cascabel

Powiązane problemy