После того, как я клонировал из готического репозитория git, у моего импортированного локального репозитория не было всех ветвей в нем. Ниже приведена архитектура.git clone не импортирует все удаленные ветви
Вот шаги, как этот голый репозиторий пришел в бытие.
- Я имел существующий репозиторий ( на рисунке). Я сделал некоторую ветвь , фильтрующую внутри этой ветки, чтобы исключить некоторые бесполезные каталоги.
- создал новое пустое голое хранилище (б на рисунке) с использованием
git init --bare new_repo.git
- В в локальном хранилище, я изменил удаленный URL с помощью
git remote set-url origin /path/new_repo.git
. - Вытолкнули содержимое a - b с использованием команды
git push origin '*:*'
и получили успех. - На этом этапе команда
git branch -r
показывает все удаленные ветви правильно. - Теперь, когда я клонировать б (голый репозиторий), клонированный локальный репозиторий (с на рисунке) будет создаваться и имеет правильную структуру каталогов. Но проблема в том, что когда я пытаюсь перечислить все удаленные ветви с помощью
git branch -r
, в нем перечисляется только ведущий.
Почему в клонированном репозитории нет всех удаленных филиалов и как я могу импортировать все эти файлы?
ли вы имеете в виду 'GIT нажимного происхождения '*: *''? Если вы действительно сделали «git push origin»: *: '', который мог бы объяснить проблему (или, возможно, repo' a' имеет только ветку 'master', так как' git push origin' *: * ''только толкает локальные ветви, а не ветви удаленного отслеживания). – torek
Спасибо за ответ и исправление. Но я сбив с толку, потому что после запуска 'git push origin '*: *'', когда я делал 'git branch -r', он отображал все удаленные репозитории правильно, как на ** a **, так и ** b **. –
Хм, возможно, что 'git push origin '*: *'' * * * нажимает ветви удаленного отслеживания. Но если это так, это все еще бесполезно, потому что 'git clone 'копирует только * локальные * ветви в' b' из голого репо 'b' в новый репо' c'. Вот почему вы хотите, чтобы они были локальными ветвями на 'b'. – torek