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