Git Fetch: klasa mistrzowska
Opublikowany: 2023-02-26
Polecenie Git fetch pozwala spojrzeć przed wykonaniem skoku. Możesz odkryć, jakie zmiany zostały wprowadzone w zdalnym repozytorium, ale bez nadpisywania plików lokalnych plikami zdalnymi.
Co to jest pobieranie git i co robi?
Git fetch vs. pull
Synchronizuj swoje lokalne i zdalne repozytoria za pomocą git fetch
Zobacz wszystkie pobrane tagi
Najpierw wykonaj próbę na sucho
Jak pobrać pojedynczą gałąź
Pobierz wszystkie gałęzie
Porównanie oddziałów lokalnych i zdalnych
Synchronizacja oddziału lokalnego z oddziałem zdalnym
Na wpół wyszkolony szczeniak
Co to jest pobieranie git i co robi?
Polecenie fetch w Git bezpiecznie pobiera zatwierdzenia, pliki i inne informacje ze zdalnego repozytorium do lokalnego repozytorium. Użyj pobierania, gdy chcesz zobaczyć, jakie zmiany wprowadzili inni programiści, bez konieczności ich akceptowania. Twoje pliki lokalne pozostają nietknięte. Dlaczego to jest ważne?
Musisz zachować rozsądek, gdy pracujesz jako część zespołu programistów. Zdalne lub centralne repozytorium będzie zawierało zmiany i nowe gałęzie utworzone przez innych programistów i przesłane do zdalnego repozytorium.
Całkiem możliwe, że ktoś zaktualizował zdalną kopię plików, które zmodyfikowałeś lokalnie na swoim komputerze. Jeśli przypadkowo wykonasz polecenie git pull , aby zaktualizować swoje lokalne repozytorium, prawdopodobnie odkryjesz, że zajmujesz się scalaniem zmian, których możesz nawet nie chcieć.
Po pobraniu informacji możesz je przejrzeć i zobaczyć, jakie są zmiany. Dzięki temu możesz dokonać świadomego wyboru, co chcesz scalić teraz, jeśli w ogóle, a co chcesz odłożyć na później.
Git fetch vs. pull
Polecenie git fetch zachowuje się jak polecenie git pull , ale bez kroku, który nadpisuje pliki lokalne. Twoje lokalne repozytorium jest aktualizowane i synchronizowane, ale zmiany nie są zapisywane w stanie roboczym twojego lokalnego repozytorium, więc twoje pliki pozostają nietknięte.
Innymi słowy, polecenie git pull jest jak git fetch po którym natychmiast następuje git merge .
Synchronizuj swoje lokalne i zdalne repozytoria za pomocą git fetch
Aby pobrać wszystkie zaktualizowane metadane i zatwierdzenia ze zdalnego repozytorium do lokalnego repozytorium, użyj polecenia git fetch z nazwą lub adresem URL zdalnego repozytorium. Domyślnie pierwsze zdalne repozytorium nosi nazwę „Origin”.
git pobiera źródło
Możesz pominąć słowo „pochodzenie”, jeśli pracujesz z pojedynczym zdalnym repozytorium.
pobierz git

To pobiera wszelkie aktualizacje z repozytorium „origin”, ale nie scala zmian z plikami roboczymi. Widzimy, że istnieje nowa gałąź, zwana „nową gałęzią”, która została dla nas pobrana.
Po użyciu polecenia fetch możesz zobaczyć pełną listę oddziałów na pilocie, używając opcji -r (remote) z poleceniem branch.
gałąź git -r

Zawiera listę wszystkich gałęzi, o których wie pilot, a które po fetch znajdują się również w twoim lokalnym repozytorium.
Zobacz wszystkie pobrane tagi
Podobnie możesz użyć opcji tag (zauważ, że jest to „tag” bez „s”), aby zobaczyć listę tagów.
znacznik git

POWIĄZANE: Jak przełączać, dodawać i usuwać piloty Git
Najpierw wykonaj próbę na sucho
Chociaż git fetch nie scala zmian z plikami roboczymi, nadal aktualizuje lokalne repozytorium. Jeśli chcesz zobaczyć, jakie zmiany wykona polecenie fetch , bez faktycznego ich wprowadzania, użyj opcji --dry-run .
git fetch — uruchomienie na sucho

Jak pobrać pojedynczą gałąź
Pobieranie informacji o pojedynczym oddziale jest łatwe. Dodaj nazwę gałęzi do wiersza poleceń, aby powiedzieć fetch , że musisz wiedzieć tylko o tej jednej gałęzi.
Tutaj mówimy fetch , aby pobrał gałąź „mary-feature” ze zdalnego repozytorium „origin”.
git fetch origin mary-feature


Teraz, gdy szczegóły i zawartość zdalnej gałęzi znajdują się w twoim lokalnym repozytorium, możesz użyć polecenia git checkout aby utworzyć nową gałąź i pobrać zdalną gałąź. Nie spowoduje to nadpisania żadnych istniejących plików, jeśli korzystasz z tej gałęzi po raz pierwszy.
git checkout -b mary-feature origin/mary-feature

Pobierz wszystkie gałęzie
Jeśli używasz wielu pilotów, możesz zaoszczędzić czas, przeciągając wszystkie zmiany ze wszystkich gałęzi z powrotem do lokalnego repozytorium za pomocą opcji --all .
git fetch --all
Porównanie oddziałów lokalnych i zdalnych
Aby zobaczyć, jak pliki w oddziale zdalnym różnią się od lokalnych kopii, użyj git fetch , a następnie użyj polecenia git log .
Należy zauważyć, że lokalne i zdalne gałęzie mają dwie kropki „ .. ” oddzielające je. Opcja --oneline pokazuje identyfikator zatwierdzenia i komunikat zatwierdzenia.
pobierz git
git log --oneline mary-feature..Origin/mary-feature

Wyświetlanie jednowierszowe jest przydatne, jeśli gałąź zawiera bardzo wiele zmian. Aby zobaczyć trochę więcej informacji, pomiń opcję --oneline .
git log mary-funkcja..Origin/mary-funkcja

To pokazuje nam czas i datę każdego zatwierdzenia, wraz z komunikatem zatwierdzenia i danymi kontaktowymi autora zmiany.
Synchronizacja oddziału lokalnego z oddziałem zdalnym
Jeśli zdecydowałeś, że chcesz iść dalej i scalić zmiany ze zdalnej gałęzi z lokalnymi plikami roboczymi, możesz użyć tych poleceń.
Sprawdzimy gałąź, aby upewnić się, że działamy, że jest to nasza aktualna, działająca gałąź.
git checkout funkcja mary

Oddział jest dla nas sprawdzony i powiedziano nam, że jest za wersją zdalną. Możemy użyć git pull aby go zaktualizować, a następnie git status aby sprawdzić nasz status.
git pull
status gita

Jeśli wprowadziliśmy jakieś zmiany w naszych lokalnych plikach, Git poinformuje nas, kiedy sprawdzamy gałąź, że będziemy musieli wykonać git pull , aby rozpocząć scalanie.
git checkout funkcja mary

Prosty git pull rozpoczyna proces pobierania plików i scalania, lub możemy od razu zanurkować i użyć samego git merge . Zaczniemy od upewnienia się, że pracujemy z właściwą gałęzią
git checkout funkcja mary

Powiemy git , aby scalił naszą obecną gałąź z gałęzią w zdalnym repozytorium, jest sześć różnych zatwierdzeń, które muszą zostać rozwiązane.

Musimy powiedzieć Gitowi, którą zdalną gałąź chcemy scalić.
git merge pochodzenie/funkcja mary

Otworzy się edytor, który umożliwi nam przesłanie komunikatu o zatwierdzeniu. Możemy zaakceptować sugerowaną wiadomość lub dodać własną. Edytor jest twoim domyślnym edytorem, chyba że Git został skonfigurowany do używania innego edytora.

Zapisz zmiany, gdy będziesz gotowy, aby kontynuować. Scalanie odbywa się automatycznie po zamknięciu edytora.
Nasza fuzja zakończyła się sukcesem, ponieważ nie było konfliktów.

Konflikty pojawiają się, gdy te same wiersze kodu są zmieniane przez dwóch lub więcej programistów. W takim przypadku Git zaznacza konflikty w pliku, którego dotyczy problem. Musisz przejrzeć je po kolei i wybrać, którą zmianę chcesz zachować.
Na wpół wyszkolony szczeniak
Podobnie jak szkolony szczeniak, fetch przywiezie to, o co poprosisz, ale tego nie upuści. Jeśli naprawdę chcesz tego, co pokazał ci szczeniak, musisz pull .
POWIĄZANE: Git rebase: wszystko, co musisz wiedzieć
