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ć