Jaka jest różnica między robieniem (po mkdir repo
i cd repo
):
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
i
git clone git://github.com/cmcculloh/repo.git
To znaczy, oczywiście, że jeden jest krótszy, ale poza tym, czy w zasadzie robią to samo?
git clone
jest sposobem uzyskania lokalnej kopii istniejącego repozytorium do pracy. Zwykle używa się go tylko raz dla danego repozytorium, chyba że chcesz mieć wiele jego roboczych kopii. (Lub chcesz uzyskać czystą kopię po zepsuciu lokalnego ...)git pull
(lubgit fetch
+git merge
) to sposób aktualizacji lokalnej kopii o nowe zatwierdzenia ze zdalnego repozytorium. Jeśli współpracujesz z innymi, będzie to polecenie, które będziesz często uruchamiać.Jak pokazuje twój pierwszy przykład, można emulować
git clone
za pomocą zestawu innych poleceń git, ale tak naprawdę nie jest tak, żegit pull
robi się „zasadniczo to samo” cogit clone
(lub odwrotnie).źródło
W języku laików możemy powiedzieć:
źródło
git clone
oznacza, że tworzysz kopię repozytorium w swoim systemie.git fork
oznacza, że kopiujesz repozytorium na swoje konto Github.git pull
oznacza, że pobierasz ostatnie zmodyfikowane repozytorium.git push
oznacza, że zwracasz repozytorium po modyfikacji.W terminologii laika:
git clone
pobiera igit pull
odświeża.źródło
klon : kopiowanie zdalnego repozytorium serwera na komputer lokalny.
pull : pobierz nowe zmiany, które inne zostały dodane do twojego komputera lokalnego.
To jest różnica.
Klonowanie jest zwykle używane do uzyskiwania zdalnej kopii repo.
Pull służy do wyświetlania kodu dodanego innym członkom zespołu, jeśli pracujesz w zespołach.
źródło
Klon git służy do pobierania dokładnie tego, co aktualnie działa na zdalnym repozytorium serwera i zapisywania go w folderze komputera, na którym jest umieszczony ten projekt. Najczęściej jest używany tylko wtedy, gdy zamierzamy załadować projekt po raz pierwszy. Po tym pull jest lepszą opcją.
git pull jest w zasadzie operacją (klonowanie (pobieranie) + scalanie) i jest najczęściej używany, gdy pracujesz jako praca zespołowa. Innymi słowy, jeśli chcesz najnowsze zmiany w tym projekcie, możesz wyciągnąć.
źródło
Panna Clone: Dostaję nową kopię do lokalnego.
Pan Pull: Mam już lokalnie, po prostu aktualizuję.
Panna Clone: Mogę robić to, co robisz! Jesteś tylko moim podzbiorem.
Pan Pull: Ditto!
Miss Clone: Nie, nie tworzysz. Tym się właśnie zajmuję:
Robisz tylko # 3, a następnie łączysz się, czego nie muszę robić (moje jest świeże).
Pan Pull: Smarty spodnie, nic wielkiego, najpierw zrobię „git init”! Więc jesteśmy tacy sami. Dodatkowo mam dodatkową funkcję „scalania” w istniejących repozytoriach! Co czyni mnie najczęściej używanym poleceniem w Git;)
Twórcy Git: Trzymaj swoje konie Mr Pull, jeśli --bare lub --mirror zostanie użyte z klonem lub init, twoje połączenie się nie stanie. Pozostaje tylko do odczytu.
źródło
Hmm, czego brakuje, aby zobaczyć zdalną gałąź „4.2”, kiedy ciągnę, tak jak robię to, gdy klonuję? Coś wyraźnie nie jest identyczne.
vs
źródło
git clone URL ---> Cały projekt lub repozytorium zostaną pobrane jako osobny katalog. a nie tylko zmiany git pull URL ---> fetch + merge -> Pobierze tylko zmiany, które zostały wykonane, a nie cały projekt
źródło
Chociaż
git fetch
polecenie usunie wszystkie zmiany na serwerze, których jeszcze nie masz, w ogóle nie zmodyfikuje katalogu roboczego. Po prostu zbierze dane i pozwoli ci je scalić samodzielnie. Istnieje jednak wywołane polecenie,git pull
które w większości przypadkówgit fetch
następuje natychmiast po nimgit merge
.Czytaj więcej: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
źródło
Klon -: stworzy dokładnie zduplikowaną kopię projektu zdalnego repozytorium na komputerze lokalnym.
Pull -: Załóżmy, że dwie lub więcej osób korzysta z tego samego repozytorium. (Przypuśćmy, że inna osoba nazywa się Syam) (Repozytorium to miejsce, w którym twój projekt istnieje w Github). Więc jeśli Syam dokona pewnych zmian w tym samym projekcie w swoim lokalnym i przekaże go do zdalnego repozytorium, więc bez względu na to, jakie zmiany zrobił Syam, zmiany te będą nie odzwierciedlaj w twoim lokalnym. Aby odzwierciedlić te nowe zmiany w twoim lokalnym, musisz użyć git pull. Ogólnie używamy git pull do aktualizacji projektu.
Zasadniczo używamy git clone tylko raz, podczas gdy używamy git pull wiele razy.
źródło