Ошибка Git: src refspec master не соответствует [дубликат]

этот вопрос уже есть ответ здесь:

  • src refspec master не соответствует никаким при нажатии коммитов в git 57 ответов

мне нужно создать РЕПО с именем carboncake.

я попытался это:

клонировал репозиторий gitosis-admin в мой локальный машина!--17-->

$ git clone gitosis@myserver.net: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

но он не создает никакого карбонкейка.git на моем сервере.

поэтому я последовал этому:

выполнил следующие команды на сервер:

$ 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 gitosis@myserver.net: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 'gitosis@myserver.net: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 'gitosis@myserver.net: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 'gitosis@myserver.net:repositories/carboncake.git'

git show-ref на локальном компьютере ничего не отображается

и

2 ответов


вы создали новый репозиторий и добавили некоторые файлы в индекс, но еще не создали свою первую фиксацию. После того как вы сделали:

 git add a_text_file.txt 

... do:

 git commit -m "Initial commit."

... и эти ошибки должны исчезнуть.


быстрый возможный ответ: когда вы впервые успешно клонируете пустой репозиторий git, origin не имеет главной ветви. Поэтому в первый раз, когда у вас есть фиксация, вы должны сделать:

git push origin master

, который создаст эту новую ветку master для вас. Такие мелочи очень путают с git.

Если это не исправить вашу проблему, то это, вероятно, gitolite'у-связанный с этим вопрос:

ваш файл conf выглядит странно. Должен был быть пример файла conf которые пришли с вашего gitolite'у. Мой выглядит так:

repo    phonegap                                                                                                                                                                           
    RW+     =   myusername otherusername                                                                                                                                               

repo    gitolite-admin                                                                                                                                                                         
    RW+     =   myusername                                                                                                                                                               

пожалуйста, убедитесь, что вы правильно устанавливаете файл conf.

Gitolite фактически заменяет учетную запись пользователя gitolite измененной оболочкой, которая не принимает интерактивные сеансы терминала. Вы можете увидеть, работает ли gitolite, пытаясь ssh в вашем поле, используя учетную запись пользователя gitolite. Если он знает, кто вы, он скажет что-то вроде "Hi XYZ, у вас есть доступ к следующим репозиториям: X, Y, Z" а затем закройте соединение. Если он не знает вас, он просто закроет связь.

наконец, после того, как ваш первый git push не удался на вашем локальном компьютере, вы никогда не должны прибегать к созданию РЕПО вручную на сервере. Нам нужно знать, почему ваш git push изначально не удался. Вы можете причинить себе и gitolite'У больше путаницы, когда вы не используете gitolite'у исключительно после того, как вы установите его.