все ответы, которые я здесь видел, действительны, но есть гораздо более чистый способ клонировать репозиторий и вытащить все ветки сразу.
Когда вы клонируете репозиторий, вся информация о ветках фактически загружается, но ветви скрыты. С командой
$ git branch -a
вы можете показать все ветки репозитория, а с помощью команды
$ git checkout -b branchname origin/branchname
затем вы можете «загружать» их вручную по одному.
Однако, когда вы хотите клонировать репо с большим количеством ветвей, все способы, показанные выше, являются длинными и утомительными по сравнению с гораздо более чистым и быстрым способом, который я собираюсь показать, хотя он немного сложен. Для этого вам потребуется три шага:
- Первый шаг
создайте новую пустую папку на вашем компьютере и клонируйте зеркальную копию папки .git из репозитория:
$ cd ~/Desktop && mkdir my_repo_folder && cd my_repo_folder
$ git clone --mirror https://github.com/planetoftheweb/responsivebootstrap.git .git
локальный репозиторий внутри папки my_repo_folder все еще пуст, теперь есть только скрытая папка .git, которую вы можете увидеть с помощью команды «ls -alt» из терминала.
- Второй шаг
переключите этот репозиторий из пустого (голого) репозитория в обычный репозиторий, переключив логическое значение "bare" конфигураций git на false:
$ git config --bool core.bare false
- Третий шаг
Возьмите все, что находится внутри текущей папки, и создайте все ветки на локальном компьютере, поэтому сделайте это обычным репо.
$ git reset --hard
Итак, теперь вы можете просто ввести команду «git branch», и вы увидите, что все ветки загружены.
Это быстрый способ клонирования репозитория git со всеми ветвями сразу, но это не то, что вы хотите делать таким образом для каждого отдельного проекта.
person
FedericoCapaldo
schedule
06.12.2015
git branch -a
) показаны ветки на пульте дистанционного управления, но если вы попытаетесь проверить любую из них, вы окажетесь в состоянии «отключенной HEAD». Следующий ответ вниз (второй по количеству голосов) отвечает на другой вопрос (а именно: как вытащить все ветки, и, опять же, это работает только для тех, кого вы отслеживаете локально). Некоторые комментарии указывают на то, что вы можете анализироватьgit branch -a
результаты с помощью сценария оболочки, который будет локально отслеживать все удаленные ветки. Резюме: нет собственного способа git делать то, что вы хотите, и в любом случае это может быть не самая лучшая идея. - person Day Davis Waterbury   schedule 19.06.2012scp [email protected]:/home/some_user/project_folder ~
Не уверен, работает ли это решение для github .. - person snapfractalpop   schedule 27.09.2012git checkout --to=<path>
, входящей в Git 2.5+ (второй квартал 2015 г.): которая будет поддерживать извлечение нескольких веток. См. stackoverflow.com/a/30185564/6309. - person VonC   schedule 12.05.2015origin/XXXX
(удаленные ветки) помечены. (Это действительно местные ярлыки, которые вы держите). Локальная главная ветвь обычно делается ветвью удаленного отслеживания (обратите внимание на черточку, которую я добавил для пояснения). Но вы можете создать другие локальные ветки, которые имеют возможность отслеживания. - person huggie   schedule 08.04.2019origin/xxx
помечаются. - person huggie   schedule 08.04.2019git checkout -b master origin/master
иgit checkout --track origin/master
? - person aderchox   schedule 18.07.2019