2015-12-19 12 views
5

Некоторые коллеги и я работаю над проектом, хранящегося в частном хранилище Git. Исторически сложился так, что не были никаких проблем, но в последнее время я попытался клонировать, и получил следующую задачу:Git клон: «Похоже, вы клонировали пустой репозиторий»

Cloning into 'project'... 
warning: You appear to have cloned an empty repository. 
Checking connectivity... done. 

git log обеспечивает:

фатальные: текущая ветвь «мастер» не имеет какие-либо совершает еще

Неправильно - мой коллега 6-го декабря нажал много (непустых) изменений (хотя теперь эта ветка не отображается при попытке клонирования с одной ветвью). Когда он ssh попадает в репозиторий git, там много каталогов.

Так мои вопросы:

  1. Как это могло произойти?
  2. Как мы можем восстановить репозиторий? Кажется, что материал находится на удаленном репо, но по какой-то причине он не осознает, что он есть.
+3

ли они толкают на ветку, которая не является 'master'? Если да, вам просто нужно проверить эту ветку? – hobbs

+1

Вы клонировали неправильный репозиторий, или они лгут вам (компьютеры не могут лежать -yet-). – m0skit0

+0

Они подтолкнули к ветке, которая не является мастером, но, как я уже упоминал, мы не можем проверить эту ветку (или любую другую ветку). Я сомневаюсь, что он врет :-) – user650261

ответ

2

Вы clonned правильное хранилище. Я думаю, что они не толкнули мастерскую ветку. Другие ветви будут там, например, origin/developemnt. Вам нужно создать локальную ветку, которая может отслеживать удаленные ветви, а затем вы можете получить последний код. Это, как вы можете отслеживать удаленные филиалы:

git branch --track dev-example origin/dev-example 
git checkout dev-example 
+0

Раньше был мастер. Он недавно исчез, и мы не знаем почему. Мы не можем отслеживать любые другие филиалы, поскольку удаленный сервер не сообщает, что они есть. Например: GIT работы отделения --track symbolicPorts происхождения/symbolicPorts ошибка: запрошенный выше ветви не существует «происхождения/symbolicPorts» подсказка: подсказка: Если вы планируете на основе вашей работы на входе намеком: филиал который уже существует на пульте дистанционного управления, вам может понадобиться Совет: запустите «git fetch», чтобы получить его. Подсказка: Подсказка: если вы планируете выталкивать новую локальную ветку, которая ... – user650261

+0

check git fetch origin –

+0

Интересно, что висел на пару секунд, а затем возвращался без словесного вывода. Кажется, что это могло что-то сделать, но после этого с «git pull» возвращается: «В вашей конфигурации указано объединение с ref 'refs/heads/master' с пульта дистанционного управления, но такой рефлектор не был выбран». – user650261

6

Если репо размещен на gitlab сервере, и вы использовали мерзавец над http клонировать репо, это может быть связанно с этим:

Git over HTTP will receive an empty repo if giltab-git-http-server is not properly configured

If for some reason gitlab-git-http-server is not properly configured, or you are using a custom nginx or Apache proxy that forwards directly to Unicorn and you attempt to clone via HTTP, the request succeeds, you receive a 200 and an empty repo.

быстрое решение является использование ублюдка через SSH для клонирования репо.

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