Git Pull vs Fetch
Prawdopodobnie jesteś w następującej sytuacji: ostatnio wprowadzono zmiany w Twoim zdalnym repozytorium i chcesz włączyć je do swojej lokalnej kopii. Masz tutaj kilka opcji; Dwie najczęstsze działania mające na celu uzyskanie zmian z pilota to git ciągnie i git fetch.
? Cieszymy się, że zapytałeś.
Co to jest Git Fetch?
Git Fetch to polecenie, które pozwala pobierać obiekty z innego repozytorium.
Co to jest git ciągnie?
Git Pull to polecenie, które pozwala pobierać i integrować się z innym repozytorium lub oddziałem lokalnym.
Na podstawie tej definicji widać, że git ciągnie jest w rzeczywistości git, a następnie dodatkowe działanie – typowo scalanie git.
Kiedy powinieneś używać git ciągnięcia?
Git Pull to pożądane działanie, gdy będziesz mieć pełny kontekst dotyczący zmian, które otrzymasz ze zdalnego repozytorium i dodawać do lokalnej kopii.
Kiedy powinieneś używać git fetch?
Jeśli chcesz tylko zobaczyć wszystkie bieżące gałęzie i zmiany w zdalnym repozytorium, Git Fetch może uzyskać wszystkie potrzebne informacje bez faktycznego wprowadzania lokalnych zmian w pracy.
Daje to czas na zdecydowanie na najlepszy sposób działania w celu włączenia zmian, takich jak połączenie ich lub szybkie do przodu lokalnego oddziału.
Porównywanie gita pull vs fetch
Porównując Pull Vs Fetch, Git Fetch jest bezpieczniejszą alternatywą, ponieważ pobiera wszystkie zatwierdzenia z pilota, ale nie wprowadza żadnych zmian w plikach lokalnych.
Z drugiej strony, git ciągnie się szybciej, gdy wykonujesz wiele akcji w jednym – lepszy huk dla swojej złotówki. Korzystanie z polecenia git pull można zobaczyć w jednym świetle jako funkcję wygody; Prawdopodobnie mniej martwisz się o wprowadzenie konfliktów w lokalnym repozytor.
Git Pull to bardziej zaawansowana akcja i ważne jest, aby zrozumieć, że wprowadzisz zmiany i natychmiast zastosować je do aktualnie sprawdzonego oddziału.
Git Fetch jest nieco inny; Możesz użyć polecenia git fetch, aby zobaczyć wszystkie zmiany pilota bez ich stosowania. Ta akcja może być świetna, jeśli jesteś nowszy w git, ponieważ zapewnia większą widoczność w wprowadzeniu zmian. Z drugiej strony, Fetch może być również preferowany przez weteranów git, którzy chcą po prostu większą kontrolę nad tym, co dzieje się w ich repozytorium.
Teraz, gdy omówiliśmy to, co robią odpowiednie polecenia i porównaliśmy git ciągnie vs fetch, dowiedzmy się, jak git Pull and Git Fetch za pomocą gni git git git git, aby wizualizować twoje repozytorium i jak wykonywać te akcje w CLI.
Gitkraken pozwala zobaczyć wszystkie szczegóły zmian, które pobierasz lub pobierasz ze zdalnego repozytorium.
Jak Git Pull vs Fetch za pomocą Gitkrakence?
W Gitkraken można łatwo pobrać lub wyciągnąć z górnego paska narzędzi.
![Gitkraken fetch] (https: // www.Gitkraken.com/wp-content/uploads/2021/04/gitkraken-fetch-1.PNG)
Alternatywnie możesz kliknąć prawym przyciskiem myszy zdalną gałąź z centralnego wykresu w Gitkraken, aby pobrać lub pociągnąć.
![Gitkraken Pull] (https: // www.Gitkraken.com/wp-content/uploads/2021/05/gitkraken-pull.PNG)
Gittip: Potrzebujesz odświeżenia, jak wyciągnąć zdalną gałęznę git? Jesteśmy z Tobą.
Ale jeśli jesteś podobny do wielu programistów i wolisz trzymać się klawiatury, Gitkraken jest pokryty super wygodną Fuzzy Finder, którą można otworzyć za pomocą klawiatury CMD/Ctrl + P.
Po otwarciu Fuzzy Finder, możesz po prostu wpisać Fetch, aby rozpocząć git git lub pociągnąć, aby zainicjować git naciągnięcia.
![Gitkraken Fetch Fuzzy Finder] (https: // www.Gitkraken.com/wp-content/uploads/2021/04/gitkraken-fetch-fuzzy-finder-1.PNG)
![Gitkraken Pull Fuzzy Funder] (https: // www.Gitkraken.com/wp-content/uploads/2021/04/gitkraken-pull-fuzzy-finder-1.PNG)
Automatyczne zmiany w Gitkrakence
Gitkraken zawiera wygodną funkcję, która umożliwia automatyczne pobieranie zmian w zdalnym repozytorium na podstawie określonego przedziału. Możesz ustawić przedział na każdą minutę, co godzinę lub określoną minutę od 0 do 60.
Może to być niezwykle pomocne w utrzymywaniu lokalnej kopii na bieżąco z pilotem i może być szczególnie korzystne, gdy dużo się dzieje z wieloma repozytoriami i projektami.
Utrzymuj lokalną kopię na bieżąco ze zmianami z pilota i zaoszczędź czas na automatycznym fetcie w Gitkrakence.
Jak zdobyć pobieranie w wierszu poleceń?
Jeśli używasz terminalu, użyjesz polecenia Git Fetch, aby pobrać zmiany ze zdalnych gałęzi.
Git Fetch
Jak dawać się wciągnąć w wierszu poleceń?
Podobnie użyjesz polecenia git pull, aby pobrać zmiany z pilota.
git ciągnie
To zaktualizuje aktualnie sprawdzoną gałęznę o zmiany ze zdalnego czasu.
Pobieranie i pobieranie zmian to tylko jedno kliknięcie w Gitkraken, głosował na najpopularniejszego klienta Git przez cztery lata z rzędu. Zrób dziś za darmo; Nie będziesz tego żałować.
Git: co dokładnie robi „git ciągnie”?
Jeśli masz lokalne zmiany (zobowiązania bez pustych), których jeszcze nie naciskałeś, twoje lokalne drzewo nie jest identyczne z odległym. Poza tym „Git Pull” może być „git fetch” plus „git rebase”. Ale „Git Rebase” może być postrzegane jako specjalne „git scal”.
17 lipca 2017 o 7:19
Zadajesz 5 pytań na podstawie powyższego tekstu, oto szczegółowe odpowiedzi:
1. Jaka jest różnica między gitem a git fetch?
. Z drugiej strony Git Fetch tylko pobiera zmiany z zdalnego repozytorium bez stosowania ich do lokalnego oddziału.
2. Kiedy powinieneś używać git ciągnięcia?
Git Pull jest zalecane, gdy masz pełną wiedzę na temat zmian wprowadzonych w zdalnym repozytorium i chcesz natychmiast zastosować je do lokalnego oddziału. Jest to przydatne, gdy chcesz szybko włączyć najnowsze zmiany w swojej pracy.
3. Kiedy powinieneś używać git fetch?
Git Fetch jest przydatny, gdy chcesz zobaczyć zmiany wprowadzone w zdalnym repozytorium bez wprowadzania żadnych zmian lokalnych. Pozwala przejrzeć zmiany i zdecydować o najlepszym podejściu do integracji ich z pracą, na przykład scalanie lub szybkie do przodu lokalnego oddziału.
4. Które polecenie jest bezpieczniejsze, git ciągnie lub git fetch?
Git Fetch jest uważany za bezpieczniejszy, ponieważ pobiera tylko zmiany z zdalnego repozytorium bez modyfikowania plików lokalnych. Z drugiej strony Git Pull zastosuje zmiany natychmiast do aktualnie sprawdzonego oddziału, który może wprowadzić konflikty, jeśli nie są właściwie obsługi.
5. Dlaczego Git ciągnie się szybciej niż Git Fetch?
Git Pull jest szybszy, ponieważ łączy wiele działań w jedno. Pobiera zmiany z zdalnego repozytorium i integruje je z lokalną gałęzią w jednym poleceniu. Może to być wygodne, jeśli mniej martwisz się o konflikty i po prostu chcesz najbardziej aktualnych zmian w odległej oddziału.
Git: co dokładnie robi git
Gittip: Potrzebujesz odświeżenia, jak wyciągnąć zdalną gałęznę git? My’ve cię zakryło.
Git Pull vs Fetch
Ty’Prawdopodobnie w następującej sytuacji: ostatnio wprowadzono zmiany w Twoim zdalnym repozytorium i chcesz je włączyć do lokalnej kopii. Masz tutaj kilka opcji; Dwie najczęstsze działania mające na celu uzyskanie zmian z pilota to git ciągnie i git fetch.
Więc co’s różnica między git ciągnie vs fetch, a kiedy należy użyć, które polecenie? My’Cieszę się, że zapytałeś.
Co to jest Git Fetch?
Git Fetch to polecenie, które pozwala pobierać obiekty z innego repozytorium.
Co to jest git ciągnie?
Git Pull to polecenie, które pozwala pobierać i integrować się z innym repozytorium lub oddziałem lokalnym.
Na podstawie tej definicji widać, że git ciągnie jest w rzeczywistości git, a następnie dodatkowe działanie – typowo scalanie git.
Kiedy powinieneś używać git ciągnięcia?
Git Pull to pożądane działanie, gdy będziesz mieć pełny kontekst dotyczący zmian, które otrzymasz ze zdalnego repozytorium i dodawać do lokalnej kopii.
Kiedy powinieneś używać git fetch?
Jeśli chcesz tylko zobaczyć wszystkie bieżące gałęzie i zmiany w zdalnym repozytorium, Git Fetch może uzyskać wszystkie potrzebne informacje bez faktycznego wprowadzania lokalnych zmian w pracy.
Daje to czas na zdecydowanie na najlepszy sposób działania w celu włączenia zmian, takich jak połączenie ich lub szybkie do przodu lokalnego oddziału.
Porównywanie gita pull vs fetch
Porównując git ciągnie vs fetch, git fetch jest bezpieczniejszą alternatywą, ponieważ pobiera wszystkie zatrudnienie z twojego pilota, ale nie’t dokonuj wszelkich zmian w plikach lokalnych.
Z drugiej strony git ciągnie się jak ty’wykonując wiele akcji w jednym – lepszy huk dla twojej złotówki. Korzystanie z polecenia git pull można zobaczyć w jednym świetle jako funkcję wygody; Ty’Prawdopodobnie mniej martwi się wprowadzeniem konfliktów w lokalnym repozytor’ponowne wyciąganie się z.
Git Pull to bardziej zaawansowana akcja i to’jest ważne, aby zrozumieć, że wprowadzisz zmiany i natychmiast zastosować je do aktualnie sprawdzonego oddziału.
Git Fetch jest nieco inny; Możesz użyć polecenia git fetch, aby zobaczyć cały pilot’S zmienia się bez ich stosowania. Ta akcja może być świetna, jeśli ty’nowsze do git, ponieważ zapewnia większą widoczność co do wprowadzanych zmian. Z drugiej strony, Fetch może być również preferowany przez weteranów git, którzy chcą po prostu większą kontrolę nad tym’S dzieje się w ich repozytorium.
Teraz, kiedy my’Przeszli przez to, co robią odpowiednie polecenia i porównywałem git pociągnięcia vs fetch, niech’S Dowiedz się, jak git Pull and Git Fetch przy użyciu GUI GITKRAKEN GIT GIT GUI, aby wizualizować repozytorium i jak wykonywać te działania w CLI.
Gitkraken pozwala zobaczyć wszystkie szczegóły zmian’Ponowne wyciąganie lub pobieranie z zdalnego repozytorium.
Jak Git Pull vs Fetch za pomocą Gitkrakence?
W Gitkraken można łatwo pobrać lub wyciągnąć z górnego paska narzędzi.
Alternatywnie możesz kliknąć prawym przyciskiem myszy zdalną gałąź z centralnego wykresu w Gitkraken, aby pobrać lub pociągnąć.
Gittip: Potrzebujesz odświeżenia, jak wyciągnąć zdalną gałęznę git? My’ve cię zakryło.
Ale jeśli ty’jak wielu programistów i wolą trzymać się klawiatury, Gitkraken ma przykrycie super wygodnym Fuzzy Findera, który można otworzyć za pomocą skrótu CMD/CTRL + P .
Po otwarciu Fuzzy Finder, możesz po prostu wpisać Fetch, aby rozpocząć git git lub pociągnąć, aby zainicjować git naciągnięcia.
Automatyczne zmiany w Gitkrakence
Gitkraken zawiera wygodną funkcję, która umożliwia automatyczne pobieranie zmian w zdalnym repozytorium na podstawie określonego przedziału. Możesz ustawić przedział na każdą minutę, co godzinę lub określoną minutę od 0 do 60.
Może to być niezwykle pomocne w utrzymywaniu lokalnej kopii na bieżąco z pilotem i może być szczególnie korzystne, gdy dużo się dzieje z wieloma repozytoriami i projektami.
Utrzymuj lokalną kopię na bieżąco ze zmianami z pilota i zaoszczędź czas na automatycznym fetcie w Gitkrakence.
Jak zdobyć pobieranie w wierszu poleceń?
Jeśli ty’ponowne za pomocą terminalu użyjesz polecenia git fetch, aby pobierać zmiany ze zdalnych gałęzi.
Git Fetch
Jak dawać się wciągnąć w wierszu poleceń?
Podobnie użyjesz polecenia git pull, aby pobrać zmiany z pilota.
git ciągnie
To zaktualizuje aktualnie sprawdzoną gałęznę o zmiany ze zdalnego czasu.
Pobieranie i pobieranie zmian to tylko jedno kliknięcie w Gitkraken, głosował na najpopularniejszego klienta Git przez cztery lata z rzędu. Zrób dziś za darmo; wygrałeś’Żałuj tego.
Git: co dokładnie robi „git ciągnie”?
Jeśli masz lokalne zmiany (zobowiązania bez pustych), których jeszcze nie naciskałeś, twoje lokalne drzewo nie jest identyczne z odległym. Poza tym „Git Pull” może być „git fetch” plus „git rebase”. Ale „Git Rebase” może być postrzegane jako specjalne „git scal”.
17 lipca 2017 o 7:19
Zadajesz tutaj 5 pytań 🙂
17 lipca 2017 o 7:24
Mam nadzieję, że przynajmniej są dobrzy.
17 lipca 2017 o 7:43
4 Answers 4
Dokładnie Część jest naprawdę trudna. Często mówi się – i to w większości prawdziwe – że git ciągnie biegi git git fetch, a następnie git scal lub git rebaza, a w rzeczywistości git ciągnie, który kiedyś był skryptem powłoki i jest teraz programem C, dosłownie dosłownie git fetch .
Kolejny krok jest jednak dość trudny. Ponadto w komentarzu dodałeś to:
[Fetch] wprowadza zmiany z zdalnego repozytorium. Gdzie je umieszcza?
Aby to właściwie zrozumieć, musisz zrozumieć system obiektowy Git.
Model obiektu Git i Git Fetch
Każde zatwierdzenie jest rodzajem samodzielnego bytu. Każde zatwierdzenie ma unikalny identyfikator Hash: B06D364. lub cokolwiek. Ten identyfikator skrótu jest kryptograficzną sumą treści tego zatwierdzenia. Rozważmy na przykład:
$ git cat -file -p głowa | sed 's/@//g' drzewo A15B54EB544033F8C1AD04DD0A5278A59CC36CC9 Parent 951EA7656EBB3F30E6C5E941E625A1318AC58298 Autor Junio C Hamano 14943339962 +0900 Commotter Junio 0900 git 2.13 Podpisane: Junio C Hamano
Jeśli zasilisz te zawartość (minus część „s/@//”, ale z nagłówkiem dodającym do każdego obiektu) do kalkulatora suma kontrolnego SHA-1, otrzymasz hash identyfikacyjny. To znaczy że wszyscy Kto ma ten zatwierdzenie, ma To samo Hash id za to.
Możesz uzyskać repozytorium git dla git i uruchomić git plik kotów -p v2.13.0^ Aby zobaczyć te same dane. Uwaga: tag v2.13.0 tłumaczy się na 074FFB61B4B507B3BDE7DCF6006E5660A0430860, który jest obiektem znacznika; Sam obiekt tagu odnosi się do zatwierdzenia B06D364. :
$ git cat -file -p v2.13.0 Obiekt B06D3643105C8758ED019125A4399CB7EFDCCE2C Typ Commit Tag V2.13.0 [Snip]
Aby pracować z zatwierdzeniem, Git musi przechowywać obiekt zatwierdzenia – element z Hash ID B06D364. – gdzieś, a także jego obiekt drzewa i wszelkie dodatkowe obiekty, których potrzebuje drzewo. Są to obiekty, które widzisz, licząc i ściskając podczas pchania Git lub Git .
Linia nadrzędna mówi, które zatwierdzenie (lub, dla scalania, zobowiązania, liczba mnoga) są poprzednikami tego konkretnego zatwierdzenia. Aby mieć pełny zestaw zatwierdzeń, Git musi Również Niech rodzica zatwierdzenia (a -Shallow Clone może celowo pominąć różnych rodziców, których identyfikatory są rejestrowane w specjalnym pliku „płytkich przeszczepów”, ale normalny klon zawsze będzie miał wszystko).
Istnieją łącznie cztery rodzaje obiektów: zatwierdzenia, (adnotowane) tagi, drzewa i jakie git wywołuje kropelka obiekty. Blobs przechowują głównie rzeczywiste pliki. Wszystkie te obiekty znajdują się w Git Baza danych obiektów. Git może następnie łatwo je odzyskać według Hash Id: Git Cat-File -p, na przykład, wyświetla je w niejasnym formacie, czyli?. (Przez większość czasu niewiele należy wykonać inne niż de -ompressing, chociaż obiekty drzew mają dane binarne, które muszą być najpierw sformatowane.)
Po uruchomieniu git fetch – lub masz git pull go uruchom dla ciebie – twój git uzyskuje identyfikatory skrótów niektórych początkowych obiektów z innego git, a następnie używa protokołów transferu git, aby dowiedzieć się, jakie dodatkowe obiekty są wymagane do ukończenia repozytorium GIT. Jeśli ty już mam jakiś obiekt, nie musisz go ponownie pobierać, a jeśli ten obiekt jest obiektem zatwierdzenia, nie potrzebujesz też żadnego z jego rodziców. 1, więc otrzymujesz tylko zatwierdzenia (i drzewa i plamy), których jeszcze nie masz. Twój git wpycha je do bazy danych obiektów repozytorium.
Gdy obiekty zostaną bezpiecznie zapisane, Git rejestruje identyfikatory skrótu w specjalnym pliku fetch_head. Jeśli twój git wynosi co najmniej 1.8.4, tak będzie Również zaktualizować dowolny odpowiedni Zdalne śledzenie nazwy gałęzi W tej chwili: e.G., może zaktualizować twoje pochodzenie/master .
(Jeśli uruchamiasz git Ręcznie, twój git jest przestrzegany wszystkich normalnych reguł aktualizacji refspec, jak opisano w dokumentacji git fetch. To dodatkowe argumenty przekazane do Git Fetch przez git ciągnięte, które hamują niektóre z nich, w zależności od wersji git.)
To zatem odpowiedź na to, co uważam za twoje prawdziwe pierwsze pytanie: Git Fetch przechowuje te obiekty w bazie danych obiektów Git, gdzie mogą być odzyskane przez ich identyfikatory skrótu. Dodaje identyfikatory skrótu do .git/fetch_head (zawsze) i często również aktualizuje niektóre z twoich referencji-nazwy TAG w refs/tagach/i zdalne nazwy gałęzi w refs/pilotach/ .
1 z wyjątkiem, to znaczy „odkręcić” płytki klon.
Reszta Git Pull
Uruchomienie git fetch dostaje ci obiekty, ale nie robi nic, aby włączyć te obiekty do dowolnego z twój praca. Jeśli sobie życzysz używać pobierane zatwierdzenia lub inne dane, potrzebujesz drugiego kroku.
Dwa główne działania, które możesz tutaj wykonać, to git scal lub git rebase . Najlepszym sposobem na ich zrozumienie jest przeczytanie o nich gdzie indziej (inne posty, inne dokumentację i tak dalej). Oba są jednak skomplikowanymi poleceniami – i jest jeden szczególny przypadek git naciągania nie objęte tymi dwoma: w szczególności możesz wciągnąć w nieistniejącą gałęzie. Masz nieistniejącą gałąź (którą git nazywa również Orphan Branch lub an nienarodzony gałąź) W dwóch przypadkach:
- w nowym, pustym repozytorium (które nie ma popełnienia), lub
- Po uruchomieniu git kasu –orphan Newbranch
W obu przypadkach nie ma obecny zatwierdzenie Więc nie ma nic do renowacji ani scalania. Jednak indeks i/lub drzewo robocze niekoniecznie są puste! Początkowo są puste w nowym, pustym repozytorium, ale zanim uruchomisz git Pull, możesz utworzyć pliki i skopiować je do indeksu.
Ten rodzaj git ciągł się tradycyjnie, więc bądź ostrożny: wersje git przed 1.8-is. Myślę, że najlepiej jest unikać git całkowicie tutaj: po prostu uruchom git, a następnie wymyśl, co chcesz zrobić. O ile mi wiadomo, jest w porządku we współczesnym git-te wersje nie zniszczą twojego indeksu i drzewa roboczego-ale mam zwyczaj unikania git naciągania się.
W każdym razie, nawet jeśli nie jesteś w gałęzi sieroty/nienarodzonej/nieistniejącej, nie jest świetnym pomysłem, aby uruchomić git scal się z brudnym indeksem i/lub drzewem roboczym („niezapomniana praca”). Komenda Git Rebase ma teraz opcję automatycznego zapisu (Rebase.Autostash), abyś mógł automatycznie uruchomić git stash zapis, aby stworzyć niektóre z nich z tak niezaangażowanej pracy. Następnie sam rebaza może działać, po czym GIT może automatycznie zastosować i upuścić zapas.
Komenda Git Merge nie ma tej automatycznej opcji, ale oczywiście możesz to zrobić ręcznie.
Zauważ, że żadne z nich nie działa, jeśli jesteś w środku konflikt łączyć. W tym stanie indeks ma dodatkowe wpisy: nie możesz ich zatwierdzić, dopóki nie rozwiązujesz konfliktów, a nawet nie możesz ich schować (co naturalnie wynika z faktu, że Git Stash naprawdę zobowiązuje się). Ty Móc uruchom git fetch, w każdy czas, ponieważ to po prostu dodaje nowe obiekty do bazy danych obiektów; ale nie możesz scalić ani rebazy, gdy indeks jest w tym stanie.
Git Pull -Rebase vs. –łączyć
Ta strona krótko wyjaśnia różnicę między ponownym odtwarzaniem a łączeniem w git podczas ciągnięcia. Obie techniki służą do łączenia lokalnych niepublikowanych zmian z opublikowanymi zdalnymi zmianami. Istnieje kolejna wikipaga na temat rebazy lub połączenia oddziału.
Jeśli chcesz zrozumieć szczegóły dotyczące ponownego obelgowania i scalania w poszukiwaniu zmian i gałęzi, Syou powinien przeczytać blog Mislav Marohnić i rozdział o ponownym objawieniu i scalaniu z książki pro git.
Odrodzenie
Jeśli pociągniesz zdalne zmiany za pomocą flagi -Rebase, wówczas lokalne zmiany są ponownie stosowane na zdalnych zmianach.
Git Pull -Rebase
łączenie
Jeśli pociągniesz zdalne zmiany za pomocą flagi -łącznika, która jest również domyślna, wówczas zmiany lokalne są scalone ze zmianami zdalnymi. Powoduje to scalanie, które wskazuje na najnowsze lokalne zatwierdzenie i najnowsze zdalne zatwierdzenie.
Git Pull -Merge
najlepsze praktyki
To najlepsza praktyka zawsze renbase swoje lokalne zatwierdzenia Kiedy ciągniesz je przed pchnięciem. Jak nikt jeszcze nie zna twoich zobowiązań, nikt nie będzie zdezorientowany, gdy zostaną poddane ponownemu. Publikowane zobowiązania są jednak zwykle scalone, na przykład, gdy gałęzie są scalone.
Aby uniknąć pisania -markizny za każdym razem, gdy ciągniesz, możesz skonfigurować git, aby użyć go jako domyślnego:
git config -global ciąg.REBASE True
Jeśli chcesz połączyć lokalne zobowiązania przed popchnięciem ich w górę, na przykład, ponieważ odkryłeś literówkę lub błąd po zatwierdzeniu, możesz to zrobić interaktywnie:
Git Rebase -i
Jeśli chcesz poznać szczegóły lub mieć starą wersję git, postępuj zgodnie z powyższymi wskazówkami literatury.
Jaka jest różnica między Git Fetch i Git Pull ?
Zanim porozmawiamy o różnice Między tymi dwoma poleceniami podkreślmy ich podobieństwa: oba są przyzwyczajeni pobierać nowe dane z zdalnego repozytorium.
Pobieranie danych jest niezbędnym krokiem w codziennej pracy – ponieważ zdalne dane, na które patrzysz w lokalnym repozytorium, to tylko „migawka”. To jest tak samo aktualne jak ostatni raz wyraźnie Pobrano nowe dane z pilota z „Fetch” lub „Pull”. Ważne jest, aby pamiętać o tym, sprawdzając odległe oddziały i zatrudnienie!
Spójrzmy teraz na drobne, ale ważne różnice między „Fetch” i „Pull”.
Ściągawka git
Nie musisz pamiętać wszystkich tych poleceń i parametrów: Zdobądź nasz popularny „git ściągowy” – za darmo!
Aportować
$ git fetch pochodzenie
Git Fetch Naprawdę pobiera nowe dane z zdalnego repozytorium – ale nie integruje żadnych nowych danych z twoimi pracami. Fetch doskonale nadaje się do uzyskania świeżego widoku na wszystkie rzeczy, które wydarzyły się w zdalnym repozytorium.
Ze względu na „nieszkodliwą” naturę możesz mieć pewność: pobierać nigdy nie manipulować, nie zniszczyć ani nie zepsuć. Oznacza to, że nigdy nie możesz wystarczająco dużo pobierać.
Ciągnąć
$ Git Pull Origin Master
git ciągnie, W przeciwieństwie do tego, jest używany z myślą o innym celu: aktualizacja bieżącej gałęzi głównej o najnowsze zmiany z zdalnego serwera. Oznacza to, że pobiera nie tylko nowe dane; to również bezpośrednio integruje się To do aktualnych plików kopiowania roboczego. Ma to kilka konsekwencji:
- Ponieważ „Git Pull” próbuje połączyć zdalne zmiany z lokalnymi, może wystąpić tak zwany „konflikt scalania”. Sprawdź nasz dogłębny samouczek na temat radzenia sobie z konfliktami scalania, aby uzyskać więcej informacji.
- Podobnie jak w przypadku wielu innych działań, zdecydowanie zaleca się rozpoczęcie „git ciągnięcia” tylko z czystą kopią roboczą. Oznacza to, że powinieneś nie Miej jakiekolwiek niezaangażowane zmiany lokalne przed pociągnięciem. Użyj funkcji GIT STASH, aby tymczasowo zapisać lokalne zmiany.
Wskazówka
Automatyki + automatyczne zanurzenie w wieży
W przypadku korzystania z klienta Git Tower nie musisz pobierać ręcznie Cały czas: wieża przynosi tło, regularnie i automatycznie. A jeśli spróbujesz pociągnąć za nieczute zmiany lokalne w kopii roboczej, Tower automatycznie zaoferuje bezpiecznie przechowuj osoby na skrytce dla Ciebie:
Ucz się więcej
- Sprawdź rozdział sprawdzający zdalne dane w naszej bezpłatnej książce online
- Częściej zadawane pytania dotyczące kontroli git i wersji
Zdobądź nasz popularny Git Cheat za darmo!
Z przodu znajdziesz najważniejsze polecenia i pomocne wskazówki dotyczące najlepszych praktyk z tyłu. Ponad 100 000 programistów pobrało go, aby Git trochę łatwiejszy.
O nas
Jako twórcy Tower, najlepszy klient GIT dla komputerów Mac i Windows, pomagamy ponad 100 000 użytkowników w firmach takich jak Apple, Amazon, Twitter i eBay.
Podobnie jak w przypadku Tower, naszą misją z tą platformą jest pomoc ludziom stać się lepszymi profesjonalistami.
Dlatego podajemy naszym przewodnikom, filmom i kodzie (o kontroli wersji z git i wiele innych tematów) za darmo.
© 2010-2023 Tower – Wspomniane nazwy produktów i logo są własnością ich właścicieli.
Uzyskanie zmian z zdalnego repozytorium
Możesz użyć wspólnych poleceń GIT, aby uzyskać dostęp do zdalnych repozytoriów.
Opcje wprowadzania zmian
Te polecenia są bardzo przydatne podczas interakcji z zdalnym repozytorium. klon i pobieranie zdalnego kodu z zdalnego adresu URL repozytorium do lokalnego komputera, scalanie służy do scalania pracy różnych ludzi z twoją, a Pull to połączenie pobierania i scalania .
Klonowanie repozytorium
Aby pobrać kompletną kopię repozytorium innego użytkownika, użyj GIT Clone w ten sposób:
$ git clone https: // github.com/nazwa użytkownika/repozytorium.git # klonuje repozytorium na komputerze
Możesz wybrać spośród kilku różnych adresów URL podczas klonowania repozytorium. Podczas zalogowania się do GitHub, te adresy URL są dostępne na stronie głównej repozytorium po kliknięciu
Kiedy uruchamiasz Git Clone, pojawiają się następujące działania:
- Powstaje nowy folder o nazwie Repo
- Jest inicjowany jako repozytorium GIT
- Utworzono zdalne nazwane pochodzenie, wskazując na adres URL, z którego sklonowałeś
- Wszystkie pliki i zatwierdzenia repozytorium są tam pobierane
- Domyślna gałąź jest sprawdzana
Dla każdego odgałęzienia w zdalnym repozytorium, w lokalnym repozytorium utworzone są odpowiednie zdalne gałęzie/zdalne/pochodzenia/pochodzenia/foo. Zwykle możesz skrócić takie zdalnie śledzące nazwy gałęzi do pochodzenia/foo .
Pobieranie zmian z zdalnego repozytorium
Użyj Git Fetch, aby odzyskać nowe prace wykonane przez inne osoby. Pobieranie z repozytorium pobiera wszystkie nowe gałęzie i tagi zdalnego śledzenia bez połączenie tych zmian we własnych gałęzi.
Jeśli masz już lokalne repozytorium z zdalnym adresem URL dla żądanego projektu, możesz pobrać wszystkie nowe informacje, używając Git Fetch * RemoteName * w terminalu:
$ git fetch zdalne-name # pobiera aktualizacje dokonane do zdalnego repozytorium
W przeciwnym razie zawsze możesz dodać nowy pilot, a następnie pobrać. Aby uzyskać więcej informacji, zobacz „Zarządzanie zdalnymi repozytoriami.”
Połączenie zmian w lokalnym oddziale
Scalanie łączy Twoje lokalne zmiany z zmianami dokonanymi przez innych.
Zazwyczaj połączysz gałąź zdalnie śledzącej (i.mi., gałąź pobierana z zdalnego repozytorium) z lokalną gałęzią:
$ git scal zdalny nazwa/nazwa oddziału # łączy aktualizacje dokonane online z pracą lokalną
Wyciąganie zmian z zdalnego repozytorium
Git Pull to wygodny skrót do ukończenia zarówno git fetch, jak i git scal się w tym samym poleceniu:
$ git Pull zdalny nazwa oddział-nazwa # pobiera aktualizacje online i łączy je z pracą lokalną
Ponieważ Pull wykonuje scalanie odzyskanych zmian, powinieneś upewnić się, że praca lokalna jest popełniona przed uruchomieniem polecenia Pull. Jeśli wpadniesz na konflikt scalania, nie możesz rozwiązać lub jeśli zdecydujesz się zrezygnować z scalania, możesz użyć git scer -aBort, aby zabrać gałąź z powrotem do miejsca, w którym była przed pociągnięciem.
Dalsze czytanie
- „Praca z pilotami” z Pro git książka”
- „Rozwiązywanie problemów z problemami łączności”
Pomoc i wsparcie
Pomóż nam uczynić te dokumenty świetnie!
Wszystkie dokumenty Github są open source. Zobacz coś, co jest złe lub niejasne? Prześlij żądanie ciągnięcia.