Ответ 1
Try
git push origin mybranch
Это подталкивает вашу ветку с именем mybranch к удаленному имени с именем origin
Я мог бы использовать руку, чтобы узнать, как перенаправить локальную ветвь в удаленную ветку. См. Ниже. Помогите оценить!
Локальная ветвь была создана после клонирования репо, а затем выполнила
$ git checkout -b mybranch remotes/origin/mybranch
$ git branch -a
master
* mybranch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/mybranch
Но при попытке нажимать изменения:
$ git push mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git push remotes/origin/mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git push origin/mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Try
git push origin mybranch
Это подталкивает вашу ветку с именем mybranch к удаленному имени с именем origin
Как говорит Абизерн, это работает:
git push origin mybranch
Но, чтобы объяснить далее, часть mybranch является refspec. Это указывает удаленный ref, который должен быть обновлен с данным локальным коммиттом.
Итак, приведенная выше команда эквивалентна:
git push origin mybranch:mybranch
или даже:
git push origin mybranch:refs/heads/mybranch
и, действительно, поскольку вы находитесь на локальном mybranch, вы могли бы сделать:
git push origin HEAD:mybranch
Это хорошо понять, потому что я часто нахожу себя в таких вещах, как:
git push origin HEAD^:mybranch
где вы хотите нажать все, кроме самого верхнего патча, на удаленную ветку.
Наконец, если вы хотите удалить удаленный mybranch, выполните следующие действия:
git push origin :mybranch
Это старый вопрос, но я использовал эту страницу в качестве обратной ссылки в тот же день и получил ответ с другой точки зрения. По моему опыту, лучший способ - настроить настройки конфигурации таким образом, чтобы git push
- это все, что вам нужно будет ввести в конце.
Вы перейдете к той же удаленной ветке, в которой вы обновляете свой код:
git config --global push.default upstream
И теперь вы устанавливаете удаленную ветвь как вверху (если она еще не была):
git branch --set-upstream-to origin/the_master
git branch --set-upstream local_branch origin/the_master
У вас есть два ветки - локальный и удаленный. Выполнение git pull
или git push
без аргументов должно и теперь делать то, что вы хотите. Это не будет ограничивать вас нажатием на удаленные ветки с тем же именем, что и локальные, как это делают некоторые из приведенных выше команд.
Последнее, что я обычно делаю: изменить git pull
, чтобы изменить эту последовательность:
git fetch && git merge [remote_upstream]
togit fetch && git rebase [remote_upstream]
С помощью этой команды: git config --global branch.autosetuprebase remote