Jaka jest różnica między git clone
i git checkout
?
Jaka jest różnica między git clone
i git checkout
?
Odpowiedzi:
Strona podręcznika do kasy: http://git-scm.com/docs/git-checkout
Strona podręcznika dla klonowania: http://git-scm.com/docs/git-clone
Podsumowując, klon służy do pobierania repozytoriów, których nie masz, kasa służy do przełączania się między oddziałami w repozytorium, które już masz.
Uwaga: dla tych, którzy mają doświadczenie w SVN / CVS i są nowi w Git, odpowiednikiem git clone
SVN / CVS jest checkout
. To samo sformułowanie różnych terminów jest często mylące.
checkout
można też przyzwyczaić się do innych rzeczy, takich jak nadpisywanie pliku w kopii roboczej wersją tego pliku z innej wersji.
Klon git służy do pobierania repozytoriów ze zdalnego serwera git.
git checkout polega na sprawdzeniu żądanego statusu repozytorium (np. oddziałów lub poszczególnych plików).
Na przykład, jesteś obecnie w gałęzi master i chcesz przejść do gałęzi developerskiej.
git checkout develop_branch
Np. Chcesz przejść do określonego stanu określonego pliku
git checkout commit_point_A -- <filename>
Oto dobre odniesienie do nauki Git, które pozwala łatwiej zrozumieć.
git clone
będzie również działać z lokalnymi repozytoriami.
Jedną z rzeczy, na którą należy zwrócić uwagę, jest brak „kopii” w git. Jest tak, ponieważ masz już pełną kopię w lokalnym repozytorium - Twoje lokalne repozytorium jest jednym clone
z wybranych repozytoriów nadrzędnych. Więc masz skutecznie osobistycheckout
od wszystkiego , bez narażania jakiś „blokadę” na tych plików w repo odniesienia.
Git zapewnia wartości skrótu SHA1 jako mechanizm sprawdzania, czy posiadana kopia pliku / drzewa katalogów / zatwierdzania / repo jest dokładnie taka sama jak kopia używana przez osobę, która może zadeklarować rzeczy jako „Master” w hierarchii zaufania. Pozwala to uniknąć tych wszystkich „blokad”, które powodują, że większość systemów SCM dusi się (przy zwykłych problemach z prywatnymi kopiami, dużymi scaleniami i bez rzeczywistej kontroli lub zarządzania kodem źródłowym ;-)!
Po prostu git checkout ma 2 zastosowania
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
utworzy nową gałąź z zawartością master i przejdzie do nowo utworzonej gałęziMożesz znaleźć więcej opcji na oficjalnej stronie
-b
opcja jest niesamowita, która tworzy nowy oddział lokalny i sprawdza go w tym samym czasie za pomocą jednego polecenia. Pokochałem to!
checkout
może być użyty w wielu przypadkach:
Pierwszy przypadek : przełączanie między oddziałami w lokalnym repozytorium Na przykład:
git checkout exists_branch_to_switch
Możesz także utworzyć nowy oddział i przełączać się w tym przypadku za pomocą -b
git checkout -b new_branch_to_switch
Drugi przypadek : przywróć plik z x rev
git checkout rev file_to_restore
...