Вопрос
У меня есть общедоступный репозиторий на github.com с двумя ветками: master
и test
.
Я создал новый каталог локально и сделал:
[ ] git clone git@github.com:{username}/{projectname}.git
Затем я создал новую ветку с именем my_test
с
[ ] git branch my_test
и перешел на него.
[ ] git checkout my_test
Затем я объединил его из своего test
ветка моего публичного репозитория с
[ ] git merge origin/test
и это привело к ускоренной перемотке вперед.
Я внес некоторые изменения и зафиксировал их.Затем я попытался подтолкнуть местное my_test
филиал для публики test
ветка на github с
[ ] git push git@github.com:{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 'git@github.com:{username}/{projectname}.git
Что я делаю не так ?
Решение
Возможно, попробуйте:
git push git@github.com:{username}/{projectname}.git HEAD:test
Формат последнего параметра в этой командной строке — ссылочная спецификация это ссылка источника, за которой следует двоеточие, а затем ссылка назначения.Вы также можете использовать название вашего местного филиала (my_test
) вместо HEAD, чтобы быть уверенным, что вы отправляете правильную ветку.
Документация для git push
есть более подробная информация об этом параметре.
Другие советы
Кроме того, вам не нужно вводить весь URL-адрес каждый раз, когда вы хотите отправить сообщение.Когда вы запустили клон, git сохранил этот URL-адрес как «источник», поэтому вы можете запустить что-то вроде «объединить источник/тест» — это означает «тестовую» ветку на вашем «исходном» сервере.Итак, самый простой способ отправить сообщение на ваш сервер в этом случае будет:
git push origin my_test:test
Это переместит вашу локальную ветку «my_test» в ветку «test» на вашем «исходном» сервере.Если вы назвали свою локальную ветку так же, как и ветку на сервере, то двоеточие не обязательно, вы можете просто сделать:
git push origin test
Эта ошибка также возникает, если вы пытаетесь отправить данные в новый репозиторий, не зафиксировав предварительно ничего.Пытаться:
git add -A
git commit -am 'Initial commit'
А затем попробуйте толчок еще раз.
Думаю здесь вам нужно будет настроить отслеживание филиалов.Пожалуйста, выполните следующее, чтобы включить отслеживание
git branch --track my_test origin/my_test
Тестировать
git push -u origin my_test
git pull origin my_test
Вам необходимо убедиться, что ваш локальный репозиторий имеет то же имя, что и удаленный репозиторий, который вы пытаетесь отправить.
Сначала измените репозиторий, используя git Branch -m «test», чтобы «my_test» было «test».Во-вторых, просто выполните git push origin test