2016-12-26 24 views
0

Я нахожусь на mac os x, включен ssh. Я пытался подтолкнуть локальные изменения к удаленному репо. Я моделируется удаленный репозиторий локально, как это: Создание удаленного репоGit push to refs/heads/master не работает на моем mac, как исправить?

$cd ~/learn 
$mkdir gittest 
$cd gittest/ 
$git init 
$git config --global user.name "username" 
$git config --global user.email "useremail" 
$touch readme 
$git add readme 
$git commit -m "empty" 

ОК, все в порядке, а затем в другой каталог, я сделал:

$cd ~/learn/client 
$git clone [email protected]lhost:/Users/trosky/learn/gittest 
$cd gittest 
$vi readme(add one line) 
$git add . 
$git commit -m "add line" 
$git push origin master:refs/heads/master 

Это не удалось, и мерзавец говорит:

$git push origin master:refs/heads/master 
Total 0 (delta 0), reused 0 (delta 0) 
remote: error: refusing to update checked out branch: refs/heads/master 
remote: error: By default, updating the current branch in a non-bare repository 
remote: error: is denied, because it will make the index and work tree inconsistent 
remote: error: with what you pushed, and will require 'git reset --hard' to match 
remote: error: the work tree to HEAD. 
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to 
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into 
remote: error: its current branch; however, this is not recommended unless you 
remote: error: arranged to update its work tree to match what you pushed in some 
remote: error: other way. 
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set 
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'. 
To [email protected]:/Users/trosky/gittest 
! [remote rejected] master -> master (branch is currently checked out) 
error: failed to push some refs to '[email protected]:/Users/trosky/learn/gittest' 

Означает ли это, что проблема удаленного репо или локальной клиентской стороны имеет какие-либо проблемы? Как это исправить?

+0

В сообщении говорится, что именно происходит, можете ли вы объяснить, какая часть этого вас путает? – jthill

ответ

0

В сообщении об ошибке сообщается, что (удаленный объект, к которому вы пытаетесь нажать, не является голой репо, а на самом деле ...) ветка, которую вы пытаетесь нажать, проверяется в этом репозитории. По умолчанию ему не разрешено нажать на не-гоповое репо и не разрешено нажать на отмеченную ветку. Но вы можете настроить удалённую систему, чтобы разрешить это, сделав изменения git config на удаленной системе, которые дает сообщение об ошибке.

Я подозреваю, что если вы отправите сообщение об ошибке в сообщение об ошибке, вы нашли бы многие существующие веб-сайты, дающие тот же ответ.

+0

Сообщение об ошибке не говорит об этом вообще. В нем говорится, что вы не можете нажать на отмеченную ветку. Нажатие на рабочее репо полезно, даже обычное. – jthill

+0

Спасибо @jthill. Обновленный ответ. – Mort

+0

Это все еще неправильно. – jthill

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

  • Нет связанных вопросов^_^