Jaka jest różnica między git clone a checkout?

Jaka jest różnica między git clone a git checkout?

 277
Author: Michael Currie, 2011-09-04

5 answers

Strona podręcznika dla kasy: http://git-scm.com/docs/git-checkout

Strona podręcznika dla klonu: http://git-scm.com/docs/git-clone

Podsumowując, clone służy do pobierania repozytoriów, których nie masz, checkout służy do przełączania się między gałęziami w repozytorium, które już posiadasz.

Uwaga: dla tych, którzy mają tło SVN/CVS i są nowi w Git, odpowiednikiem git clone W SVN/CVS jest checkout. To samo sformułowanie różnych terminów jest często mylące.

 272
Author: August Lilleaas,
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
2017-10-27 09:36:19

Git clone {[4] } jest pobieraniem repozytoriów ze zdalnego serwera git.

Git checkout ma na celu sprawdzenie żądanego statusu repozytorium (np. gałęzi lub poszczególnych plików).

Np. aktualnie znajdujesz się na gałęzi master i chcesz przełączyć się na gałąź develop.

git checkout develop_branch

Np. chcesz sprawdzić status konkretnego pliku

git checkout commit_point_A -- <filename>

Oto dobra Referencja do nauki Gita, pozwala zrozumieć wiele łatwiej.

 115
Author: Kit Ho,
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
2017-03-07 00:17:33

Jedną rzeczą do zauważenia jest brak jakiegokolwiek "Copyout" w git. To dlatego, że masz już pełną kopię w lokalnym repo - twój lokalny repo jest clone wybranego przez Ciebie zewnętrznego repo. Tak więc masz w rzeczywistości osobiste checkout Wszystko , bez umieszczania "blokady" na tych plikach w referencji repo.

Git dostarcza wartości skrótu SHA1 jako mechanizm sprawdzania, czy kopia pliku / drzewa katalogów / commit / repo jest dokładnie taka sama jak ten używany przez tego, kto jest w stanie zadeklarować rzeczy jako "mistrz" w hierarchii zaufania. Pozwala to uniknąć tych wszystkich "blokad", które powodują, że większość systemów SCM się dławi (z typowymi problemami z prywatnymi kopiami, dużymi połączeniami i brakiem rzeczywistej kontroli lub zarządzania kodem źródłowym ;-) !

 11
Author: Philip Oakley,
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
2011-09-04 13:05:39

Po prostu Git checkout ma 2 zastosowania

  1. przełączanie pomiędzy istniejącymi lokalnymi oddziałami jak git checkout <existing_local_branch_name>
  2. Utwórz nową gałąź z bieżącej gałęzi używając flag-b. Załóżmy, że jeśli jesteś w gałęzi master, to git checkout -b <new_feature_branch_name> utworzy nową gałąź z zawartością gałęzi master i przełączy się na nowo utworzoną gałąź
Więcej opcji znajdziesz na oficjalnej stronie
 4
Author: Khader M 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
2017-06-27 12:52:14

checkout może być używany dla wielu przypadków:

1. przypadek : przełączanie pomiędzy gałęziami w repozytorium lokalnym Na przykład : git checkout exists_branch_to_switch

Możesz również utworzyć nową gałąź i przełączyć 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 ...

 2
Author: Goms,
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-05-05 18:11:27