Помните, что git clone
, как и все остальное в Git, на самом деле не так уж сильно касается имен ветвей , а скорее commits . Просто Git (и git clone
) нужны имена, чтобы find commits.
Сама команда git clone
по существу состоит из:
- создание нового каталога (или использование существующего, но пустого каталога)
- работает
git init
в этом каталоге
- настройка элементов здесь как необходимо и уместно, включая
git remote add
для сохранения URL
- работает
git fetch
с использованием только что добавленного пульта
- работает
git checkout
Следовательно, вопрос действительно сводится к: Можете ли вы управлять настройкой fetch =
для пульта, который добавляет git clone
?
Ответ Да, но только в ограниченной степени. Ограничения:
--mirror
устанавливает для refspec значение +refs/*:refs/*
.
--bare
устанавливает для refspec значения +refs/heads/*:refs/heads/*
и +refs/tags/*:refs/tags/*
.
--single-branch
или любая из команд, которые подразумевают это, устанавливают refspec в соответствии с этой операцией.
При отсутствии любого из них вы получаете стандартную ссылку. Следовательно, --single-branch
позволяет вам выбрать одну ветвь для клонирования (путем переключения на одну ветку refspec), а --mirror
позволяет вам выйти за пределы пространства имен refs/heads/
, но, по крайней мере, На сегодняшний день нет аргументов, которые сделают некоторое промежуточное подмножество. Вместо этого вы можете выполнить собственную последовательность команд mkdir
/ git init
/ git remote add
/ git config
/ git fetch
/ git checkout
, если хотите достичь какого-то особенного результата.