Как я могу git push в пункт назначения, который еще не существует - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь создать новую ветку на git-сервере, используя хэш, но без локальной ветки тоже:

$ git push origin HEAD^:new-branch
error: unable to push to unqualified destination: new-branch
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@github:company/repo.git'

Это работает, когда вы принудительно продвигаете существующую ветку.Я попытался сделать пункт назначения refs/new-branch, и он говорит:

$ git push origin HEAD^:refs/new-branch
Total 0 (delta 0), reused 0 (delta 0)
remote: error: refusing to create funny ref 'refs/new-branch' remotely
To github.com:company/repo.git
 ! [remote rejected]       HEAD^ -> refs/new-branch (funny refname)
error: failed to push some refs to 'git@github.com:company/repo.git'

Какой формат для пункта назначения еще не существует?

Я собираюсь обойти это какэто

$ git branch new-branch
$ git push origin new-branch
$ git push origin HEAD^:new-branch -f
$ git branch -D new-branch

или что-то подобное

$ git branch new-branch HEAD^
$ git push origin new-branch
$ git branch -D new-branch

, но вы должны знать, как создать новую ветку на сервере, даже не создавая ее локально

1 Ответ

0 голосов
/ 19 ноября 2018

Ветви refs/heads/..., а не просто refs/..., поэтому вам нужно нажать на refs/heads/new-branch, чтобы создать новую ветку в удаленном хранилище.

git push origin HEAD^:refs/heads/new-branch
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...