Вопрос

У меня есть общедоступный репозиторий на 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top