В чем разница между git clone
и git checkout
?
В чем разница между git клоном и проверкой?
Ответ 1
Страница man для проверки: http://git-scm.com/docs/git-checkout
Страница man для клонирования: http://git-scm.com/docs/git-clone
Чтобы подвести итог, клон предназначен для выборки репозиториев, которые у вас нет, проверка выполняется для переключения между ветвями в уже существующем репозитории.
Примечание. Для тех, у кого есть фон SVN/CVS и новый для Git, эквивалент git clone
в SVN/CVS равен checkout
. Такая же формулировка разных терминов часто путается.
Ответ 2
git clone предназначен для извлечения ваших репозиториев с удаленного сервера git.
git checkout - проверить нужный статус вашего репозитория (например, ветки или конкретные файлы).
Например, вы находитесь на главной ветке, и вы хотите перейти в ветвь разработки.
git checkout develop_branch
Например, вы хотите проверить статус определенного файла
git checkout commit_point_A -- <filename>
Вот хорошая ссылка, чтобы вы могли узнать Git, чтобы вы поняли намного легче.
Ответ 3
Одно замечание - отсутствие "копирования" внутри git. Это потому, что у вас уже есть полная копия в вашем локальном репо - локальное репо - это clone
выбранного вами репозитория upstream. Таким образом, у вас есть фактически checkout
всего, не помещая некоторую "блокировку" этих файлов в ссылочном репо.
Git предоставляет хэш-значения SHA1 в качестве механизма проверки того, что копия, которую вы имеете в дереве файлов/каталогов/commit/repo, точно такая же, как и для тех, кто может объявлять вещи как "Мастер" внутри иерархия доверия. Это позволяет избежать всех этих "блокировок", которые заставляют большинство систем SCM задыхаться (с обычными проблемами с частными копиями, большими слияниями и без реального контроля или управления исходным кодом;-)!
Ответ 4
Просто git проверка имеет 2 использования
- Переключение между существующими локальными ветвями типа
git checkout <existing_local_branch_name>
- Создайте новую ветку из текущей ветки с помощью флага -b. Предположим, что если вы находитесь в главной ветки, тогда
git checkout -b <new_feature_branch_name>
создаст новую ветку с содержимым мастера и переключится на вновь созданную ветку
Дополнительные параметры можно найти на официальном сайте