Git ошибка: src refspec master не соответствует
Мне нужно создать репо с именем carboncake
.
Я пробовал это:
Клонировал репозиторий gitosis-admin на моем локальном компьютере
$ git clone [email protected]:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf
Добавлен раздел [repo carboncake]
и [group carboncake]
в конец файла
[gitosis]
[group team]
writable = sweepshots
members = git_id_rsa
[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa
[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P
[group carboncake]
writable = myappname
members = mithun @core
Затем скопировал файл ключа pub, созданный Putty (я использую Git basg для Windows):
$cp /some/where/mithun.pub keydir/mithun.pub
Выполнены следующие команды:
$ git add gitosis.conf keydir/mithun.pub
$ git commit -m "Added 'carboncake' repository and 'mithun' user."
$ git pull --rebase
$ git push
Но он не создает никакого carboncake.git в My Server.
Итак, я последовал за этим:
Выполнено на сервере следующие команды:
$ su gitosis
$ git init --bare /srv/gitosis/repositories/carboncake.git
Здесь моя проблема:
Я попытался проверить/клонировать новый репозиторий с моей локальной машины
$ mkdir carboncake
$ cd carboncake
$ git init
$ touch a_text_file.txt
$ git add a_text_file.txt
$ git remote add origin [email protected]:repositories/carboncake.git
$ git push origin master
Что вернула ошибку:
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:repositories/carboncake.git'
Когда я попробовал git push origin HEAD:master
, он возвратил ошибку:
error: src refspec HEAD does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:repositories/carboncake.git'
Когда я попробовал git push origin master:refs/heads/master
, он возвратил ошибку:
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:repositories/carboncake.git'
git show-ref
на локальной машине ничего не отображается
Также каталог /srv/gitosis/repositories/carboncake.git/refs/heads/
на сервере пуст.
Как я могу это исправить?
Ответы
Ответ 1
Вы создали новый репозиторий и добавили некоторые файлы в индекс, но вы еще не создали свой первый коммит. После того, как вы сделали:
git add a_text_file.txt
... do:
git commit -m "Initial commit."
... и эти ошибки должны исчезнуть.
Ответ 2
Быстрый ответ: когда вы сначала успешно клонируете пустой репозиторий git, источник не имеет основной ветки. Поэтому в первый раз, когда у вас есть фиксация, вы должны сделать:
git push origin master
Что создаст для вас эту новую ведущую ветку. Маленькие вещи, подобные этому, очень запутывают с помощью git.
Если это не исправить вашу проблему, это, вероятно, проблема, связанная с гитолит:
Ваш файл conf выглядит странно. Должен был быть пример conf file, который пришел с вашим гитолитом. Мой выглядит так:
repo phonegap
RW+ = myusername otherusername
repo gitolite-admin
RW+ = myusername
Пожалуйста, убедитесь, что вы правильно настроили файл conf.
Гитолит фактически заменяет гитолитную учетную запись пользователя модифицированной оболочкой, которая не принимает интерактивные сеансы терминала. Вы можете увидеть, работает ли gitolite, пытаясь сдать ssh в ваш ящик, используя учетную запись пользователя gitolite. Если он знает, кто вы, он скажет что-то вроде "Привет XYZ, у вас есть доступ к следующим репозиториям: X, Y, Z", а затем закройте соединение. Если он вас не знает, он просто закроет соединение.
Наконец, после первого прогона git на вашем локальном компьютере вы никогда не должны прибегать к созданию репо вручную на сервере. Нам нужно знать, почему ваш git push не удалось изначально. Вы можете причинить себе и гитолит больше путаницы, когда вы не используете гитолит только после того, как вы его настроили.