2009-06-06 2 views
22

У меня есть публичный репозиторий github.com с 2-мя ветвями: master и test.Ошибка при «git push» до github

Я создал новый каталог локально и сделал:

[ ] git clone [email protected]:{username}/{projectname}.git 

Затем я создал новый филиал под названием my_test с

[ ] git branch my_test 

и переключился на него.

[ ] git checkout my_test 

Тогда я объединить его из моего test филиала моего публичного хранилища с

[ ] git merge origin/test 

и это привело к быстрой перемотки вперед.

Я внесла некоторые изменения и совершил их. Затем я попытался подтолкнуть местную my_test ветвь публичной test отрасли на GitHub с

[ ] git push [email protected]:{username}/{projectname}.git test 

, но я получил эту ошибку:

error: src refspec test does not match any. 
fatal: The remote end hung up unexpectedly 
error: failed to push some refs to '[email protected].com:{username}/{projectname}.git 

Что я делаю неправильно?

+0

Возможный дубликат [src refspec master не соответствует никаким нажатием на запятые в git] (http://stackoverflow.com/questions/4181861/src-refspec-master-does-not -match-any-when-pushing-commits-in-git) – 2014-06-06 04:41:48

+0

Возможный дубликат [Исходная ошибка пуска оригинала в новом репозитории] (http://stackoverflow.com/q/827351/456814). – 2014-06-06 04:48:53

ответ

30

Возможно попробовать:

git push [email protected]:{username}/{projectname}.git HEAD:test 

Формат последнего параметра на этой командной строки является refspec который является источником ссылок следует двоеточие и затем исх назначения. Вы также можете использовать имя своего локального филиала (my_test) вместо HEAD, чтобы убедиться, что вы нажимаете правильную ветку.

В документации для git push содержится более подробная информация об этом параметре.

+0

Thats работал. Спасибо. – ebsbk

+0

Он работал как шарм :) –

+0

Я не понимаю. Почему это работает при использовании HEAD, но не при использовании имени моего локального филиала? –

17

Кроме того, вам не нужно указывать весь URL-адрес каждый раз, когда вы хотите нажать. Когда вы запускали клон, git сохранил этот URL как «источник», поэтому вы можете запускать что-то вроде «merge origin/test» - это означает ветвь «test» на вашем сервере «origin». Таким образом, самый простой способ, чтобы подтолкнуть к серверу в этом случае будет:

git push origin my_test:test 

Это будет толкать ваш местный «my_test» ветвь к ветви «тест» на сервере «происхождения». Если бы вы назвали ваш местный филиал такой же, как ветви на сервере, то двоеточие не neccesary, вы можете просто сделать:

git push origin test 
1

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

git branch --track my_test origin/my_test 

Чтобы проверить

git push -u origin my_test 
git pull origin my_test 
1

Эта ошибка также появляется, если вы пытаетесь нажать на новое хранилище, не совершив ничего первого.Попытка:

git add -A 
git commit -am 'Initial commit' 

И затем попробуйте снова нажать.

0

Вам необходимо убедиться, что ваш локальный репозиторий имеет то же имя, что и ваш удаленный репозиторий, который вы пытаетесь нажать.

Во-первых, смените хранилище, используя git branch -m «test», чтобы «my_test» был «test». Во-вторых, просто тест git push origin

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