2015-04-09 3 views
1

После того, как я клонировал из готического репозитория git, у моего импортированного локального репозитория не было всех ветвей в нем. Ниже приведена архитектура.git clone не импортирует все удаленные ветви

enter image description here

Вот шаги, как этот голый репозиторий пришел в бытие.

  1. Я имел существующий репозиторий ( на рисунке). Я сделал некоторую ветвь , фильтрующую внутри этой ветки, чтобы исключить некоторые бесполезные каталоги.
  2. создал новое пустое голое хранилище (б на рисунке) с использованием git init --bare new_repo.git
  3. В в локальном хранилище, я изменил удаленный URL с помощью git remote set-url origin /path/new_repo.git.
  4. Вытолкнули содержимое a - b с использованием команды git push origin '*:*' и получили успех.
  5. На этом этапе команда git branch -r показывает все удаленные ветви правильно. git branch -r
  6. Теперь, когда я клонировать б (голый репозиторий), клонированный локальный репозиторий (с на рисунке) будет создаваться и имеет правильную структуру каталогов. Но проблема в том, что когда я пытаюсь перечислить все удаленные ветви с помощью git branch -r, в нем перечисляется только ведущий. git branch -r

Почему в клонированном репозитории нет всех удаленных филиалов и как я могу импортировать все эти файлы?

+0

ли вы имеете в виду 'GIT нажимного происхождения '*: *''? Если вы действительно сделали «git push origin»: *: '', который мог бы объяснить проблему (или, возможно, repo' a' имеет только ветку 'master', так как' git push origin' *: * ''только толкает локальные ветви, а не ветви удаленного отслеживания). – torek

+0

Спасибо за ответ и исправление. Но я сбив с толку, потому что после запуска 'git push origin '*: *'', когда я делал 'git branch -r', он отображал все удаленные репозитории правильно, как на ** a **, так и ** b **. –

+0

Хм, возможно, что 'git push origin '*: *'' * * * нажимает ветви удаленного отслеживания. Но если это так, это все еще бесполезно, потому что 'git clone 'копирует только * локальные * ветви в' b' из голого репо 'b' в новый репо' c'. Вот почему вы хотите, чтобы они были локальными ветвями на 'b'. – torek

ответ

3

git fetch origin или любой другой, на который настроен ваш пульт.

А потом git checkout BRANCH_NAME

+0

Спасибо за ответ, но к несчастью это не поможет. $ git checkout AMS_ENH_021110 error: pathspec 'AMS_ENH_021110' не соответствует ни одному файлу, известному git. –

+0

ok ... можете ли вы подтвердить, что удаленная ветка, которую вы ищете, «AMS_ENH_021110' существует на пульте дистанционного управления? Проверьте его в пользовательском интерфейсе и убедитесь, что вы указываете на тот же самый удаленный URL. –

+0

Когда я запускаю 'git branch -r' в открытом репозитории, ветвь отображается как удаленная ветвь. Но команда не показывает эту удаленную ветвь в локальном репозитории. –

Смежные вопросы