Создание долгосрочной ветви - PullRequest
0 голосов
/ 17 февраля 2020

Проблема: «Обновления были отклонены из-за того, что конец вашей текущей ветки находится за его удаленным аналогом» ошибка при попытке создать sh (потенциально долго работающую) ветку исправлений / обслуживания.

Настройка: Разработка ведется по основной ветке. Коммит, который находится за заголовком мастера по количеству коммитов, помечается тегом dev-0.2. Я хочу создать новую (потенциально долгосрочную) ветку (скажем, dev-0.2-bugfix) на основе тега dev-0.2 и использовать новую ветку dev-0.2-bugfix для отслеживания изменений, связанных с выпуском dev-0.2.

Что я сделал:

$ git checkout -b dev-0.2-bugfix dev-0.2
Switched to a new branch 'dev-0.2-bugfix

$ ..make changes to dev-0.2-bugfix files

$ ..commit changes to local dev-0.2-bugfix branch and now let's try to push it to remote

$ git push origin dev-0.2-bugfix
To file:////var/lib/git/Test.git
 ! [rejected]        dev-0.2-bugfix -> dev-0.2-bugfix (non-fast-forward)
error: failed to push some refs to 'file:////var/lib/git/Test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

$ git push origin dev-0.2-bugfix:dev-0.2-bugfix
To file:////var/lib/git/Test.git
 ! [rejected]        dev-0.2-bugfix -> dev-0.2-bugfix (non-fast-forward)
error: failed to push some refs to 'file:////var/lib/git/Test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Есть идеи, как решить эту проблему? Я хочу, чтобы dev-0.2-bugfix создавался на удаленном компьютере, в настоящее время dev-0.2-bugfix не работает на удаленном компьютере. Я не хочу получать последние изменения от master, поскольку они были зафиксированы после создания тега dev-0.2 и не являются частью выпуска dev-0.2 .

Спасибо

Обновление: попытался принудительно установить pu sh, он вроде работал (см. Ниже), но все еще не создавал dev-0.2-bugfix на пульте:

$ git push -f origin dev-0.2-bugfix:dev-0.2-bugfix
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 419 bytes | 419.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To file:////var/lib/git/Test.git
 + 337a471...0dd7573 dev-0.2-bugfix -> dev-0.2-bugfix (forced update)

 $ git branch -a
* dev-0.2-bugfix
  master
  remotes/origin/HEAD
  remotes/origin/master

1 Ответ

0 голосов
/ 17 февраля 2020

Проблема заключалась в том, что ветка dev-0.2-bugfix была создана на удаленном компьютере, но не отображалась в git branch -r или git branch -a, что приводило к путанице. См. Удаленная ветвь не отображается в "git branch -r" для получения дополнительной информации. Спасибо всем, кто откликнулся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...