Jaka jest różnica między pull a clone w git?
Jaka jest różnica między robieniem (po mkdir repo
a 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
Oczywiście jeden jest krótszy, ale czy poza tym robią to samo? 7 answers
Są zasadniczo takie same, z tym, że clone skonfiguruje dodatkowe gałęzie zdalnego śledzenia, a nie tylko master. Sprawdź stronę man :
Klonuje repozytorium do nowo utworzonego katalogu, tworzy gałęzie zdalnego śledzenia dla każdej gałęzi w sklonowanym repozytorium (widoczne przy użyciu git branch-r), a także tworzy i sprawdza początkową gałąź, która jest rozwidlona z aktualnie aktywnej gałęzi sklonowanego repozytorium.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-01 17:51:24
git clone
Jak uzyskać lokalną kopię istniejącego repozytorium do pracy. Zwykle jest on używany tylko raz dla danego repozytorium, chyba że chcesz mieć wiele roboczych kopii tego repozytorium. (Lub chcesz uzyskać czystą kopię po zepsuciu lokalnego...)
git pull
(lub git fetch
+ git merge
) w ten sposób zaktualizujesz tę lokalną kopię nowymi zatwierdzeniami ze zdalnego repozytorium. Jeśli współpracujesz z innymi, jest to polecenie, które będziesz często uruchamiał.
Jako pierwszy przykład pokazuje, że możliwe jest emulowanie git clone
za pomocą szeregu innych komend Gita, ale tak naprawdę nie jest tak, że git pull
robi "zasadniczo to samo" co git clone
(lub odwrotnie).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 01:09:11
W języku laików możemy powiedzieć:
- Clone : Pobierz roboczą kopię zdalnego repozytorium.
- Pull: pracuję nad tym, proszę o nowe zmiany, które mogą być aktualizowane przez innych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-17 08:28:34
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 Ostatnio zmodyfikowane repozytorium.
git push
oznacza, że zwracasz repozytorium po jego modyfikacji.
W pojęciu laika:
git clone
pobiera i git pull
odświeża.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-13 09:11:23
Clone : kopiowanie zdalnego repozytorium Serwera Na Komputer lokalny.
Pull: pobierz nowe zmiany, które Inne dodały do twojej lokalnej maszyny.
To jest różnica.
Clone jest zwykle używany do uzyskania zdalnej kopii repo.
Pull służy do wyświetlania kodu dodanego przez innych kolegów z drużyny, Jeśli pracujesz w zespołach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-13 10:23:03
Hmm, czego brakuje, aby zobaczyć zdalną gałąź "4.2", gdy ciągnę, tak jak robię, gdy klonuję? Coś nie jest identyczne.
tmp$ mkdir some_repo
tmp$ cd some_repo
some_repo$ git init
Initialized empty Git repository in /tmp/some_repo/.git/
some_repo$ git pull https://github.ourplace.net/babelfish/some_repo.git
:
From https://github.ourplace.net/babelfish/some_repo
* branch HEAD -> FETCH_HEAD
some_repo$ git branch
* master
Vs
tmp$ rm -rf some_repo
tmp$ git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
:
Checking connectivity... done.
tmp$ cd some_repo
some_repo$ git branch
* 4.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-14 20:57:06
Podczas gdy polecenie git fetch
pobierze wszystkie zmiany na serwerze, których jeszcze nie masz, nie zmieni Twojego katalogu roboczego w ogóle. Po prostu zdobędzie dane dla Ciebie i pozwoli Ci je połączyć. Jednak istnieje polecenie o nazwie git pull
, które jest zasadniczo git fetch
, a następnie git merge
w większości przypadków.
Czytaj więcej: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-13 09:12:04