В чем разница между git clone и checkout? - PullRequest
305 голосов
/ 04 сентября 2011

В чем разница между git clone и git checkout?

Ответы [ 5 ]

307 голосов
/ 04 сентября 2011

Справочная страница для оформления заказа: http://git -scm.com / docs / git-checkout

Страница man для клона: http://git -scm.com / docs / git-clone

Подводя итог, клон предназначен для извлечения репозиториев, которых у вас нет, а checkout - для переключения между ветками в уже имеющемся репозитории.

Примечание: для тех, кто имеет опыт работы с SVN / CVS и новичок в Git, эквивалент git clone в SVN / CVS составляет checkout. Одна и та же формулировка разных терминов часто сбивает с толку.

121 голосов
/ 04 сентября 2011

git clone предназначен для получения ваших репозиториев с удаленного сервера git.

git checkout предназначен для проверки желаемого состояния вашего хранилища (например, веток или определенных файлов).

Например, вы находитесь в основной ветке и хотите перейти в ветку разработки.

git checkout develop_branch

Например, вы хотите оформить заказ на определенный статус определенного файла

git checkout commit_point_A -- <filename>

Вот хороший справочник для вас, чтобы выучить Git, позволяет вам гораздо легче понять.

11 голосов
/ 04 сентября 2011

Одна вещь, на которую стоит обратить внимание, это отсутствие каких-либо «копий» в git. Это потому, что у вас уже есть полная копия в вашем локальном репо - ваше локальное репо является clone выбранного вами вышестоящего репо. Таким образом, у вас фактически есть личное checkout из всего , без какой-либо блокировки этих файлов в репозитории.

Git предоставляет значения хеш-функции SHA1 в качестве механизма проверки того, что имеющаяся у вас копия файла / дерева каталогов / commit / repo точно такая же, как и та, которая используется тем, кто может объявить вещи как «Master» в иерархии доверия. Это позволяет избежать всех тех «блокировок», которые вызывают удушение большинства систем SCM (с обычными проблемами с частными копиями, большими слияниями и отсутствием реального контроля или управления исходным кодом ;-)!

5 голосов
/ 27 июня 2017

Просто git checkout имеет 2 варианта использования

  1. Переключение между существующими локальными ветвями, например git checkout <existing_local_branch_name>
  2. Создание новой ветки из текущей ветки с помощью флага -b.Предположим, что если вы находитесь в основной ветке, то git checkout -b <new_feature_branch_name> создаст новую ветку с содержимым главной и переключится на вновь созданную ветку

Дополнительные параметры можно найти на официальном сайте

2 голосов
/ 05 мая 2018

checkout можно использовать для многих случаев:

1-й случай : переключение между ветвями в локальном хранилище. Например: git checkout exists_branch_to_switch

Вы также можете создатьВ этом случае создайте новую ветвь и переключитесь с помощью -b

git checkout -b new_branch_to_switch

2-й случай : восстановить файл из x rev

git checkout rev file_to_restore ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...