В чем разница между git clone
и git checkout
?
В чем разница между git clone
и git checkout
?
Ответы:
Справочная страница для оформления заказа: http://git-scm.com/docs/git-checkout
Страница man для клона: http://git-scm.com/docs/git-clone
Подводя итог, клон предназначен для извлечения репозиториев, которых у вас нет, а checkout - для переключения между ветками в уже имеющемся репозитории.
Примечание: для тех, кто имеет опыт работы с SVN / CVS и новичок в Git, эквивалент git clone
в SVN / CVS checkout
. Одна и та же формулировка разных терминов часто сбивает с толку.
checkout
может также использоваться для других целей, таких как перезапись файла в рабочей копии версией этого файла из другой ревизии.
git clone предназначен для получения ваших репозиториев с удаленного git-сервера.
git checkout предназначен для проверки желаемого состояния вашего репозитория (например, веток или определенных файлов).
Например, вы находитесь в основной ветке и хотите перейти в ветку разработки.
git checkout develop_branch
Например, вы хотите оформить заказ на определенный статус определенного файла
git checkout commit_point_A -- <filename>
Вот хороший справочник для изучения Git, который поможет вам понять гораздо легче.
git clone
также будет работать с локальными репо.
Одна вещь, на которую стоит обратить внимание, это отсутствие каких-либо «Copyout» в git. Это потому, что у вас уже есть полная копия в вашем локальном репо - ваше локальное репо является clone
выбранным вами вышестоящим репо. Таким образом , вы должны эффективно личку checkout
на все , без выкладывания «замок» на этих файлах в опорном репо.
Git предоставляет хеш-значения SHA1 в качестве механизма для проверки того, что имеющаяся у вас копия файла / дерева каталогов / commit / repo точно такая же, как и та, которую использует тот, кто может объявить вещи как «Master» в иерархии доверия. Это позволяет избежать всех тех «блокировок», которые вызывают удушение большинства систем SCM (с обычными проблемами с частными копиями, большими слияниями и отсутствием реального контроля или управления исходным кодом ;-)!
Просто Git Checkout имеют 2 использования
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
создадите новую ветку с содержимым главной и переключитесь на вновь созданную ветку.Вы можете найти больше вариантов на официальном сайте
-b
опция великолепна, которая создает новую локальную ветку и одновременно проверяет ее в одной команде. Любил это!
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
...