всі відповіді, які я побачив тут, справедливі, але є набагато більш чистий спосіб клонувати сховище та витягнути всі гілки одразу.
Коли ви клонуєте сховище, вся інформація гілок фактично завантажується, але гілки приховані. З командою
$ 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".
- Другий крок
переключити це сховище з порожнього (голого) сховища в звичайне сховище, перемикаючи булеве значення "голі" конфігурацій git на хибне:
$ git config --bool core.bare false
- Третій крок
Візьміть усе, що знаходиться у поточній папці, і створіть усі гілки на локальній машині, тому зробимо це нормальним репо.
$ git reset --hard
Отже, тепер ви можете просто ввести команду "git гілка", і ви можете побачити, що всі гілки завантажені.
Це швидкий спосіб, за допомогою якого ви можете клонувати сховище git з усіма гілками одночасно, але це не те, що ви хочете зробити для кожного окремого проекту таким чином.
git branch -a
) показує вам гілки у віддаленому режимі, але якщо ви спробуєте перевірити будь-яку з цих, ви опинитесь у стані «відірваної голови». Наступна відповідь вниз (друга найбільшою кількістю оновлень) відповідає на інше питання (дотепність: як витягнути всі гілки, і, знову ж таки, це працює лише для тих, кого ви відстежуєте на місцевому рівні). У кількох коментарях зазначається, що ви можете проаналізуватиgit branch -a
результати за допомогою сценарію оболонки, який би локально відстежував усі віддалені гілки. Короткий зміст: Не існує жодного рідного способу робити те, що ви хочете, і все одно це не може бути чудовою ідеєю.