Git: fatal: текущая ветвь XXX не имеет восходящей ветки (но она имеет восходящую ветвь) - PullRequest
0 голосов
/ 01 апреля 2020

Мы используем git + Jira + Bitbucket.

Сценарий:

  1. В Jira я создал (с опцией Create branch) ветку XXX .

  2. В Bitbucket я вижу, что ветвь XXX появилась в списке ветвей.

  3. Внести изменения в код => git commit.

  4. git push дает: fatal: The current branch XXX has no upstream branch.

Вопрос: в чем причина этой ошибки? Ветвь XXX имеет восходящую ветвь (я вижу эту восходящую ветвь XXX в Jira.)

Обратите внимание: перед этой ошибкой я использовал git push с NO дополнительные аргументы.

UPD0: @RadioSilence предложил использовать команду git branch -vv! Я сделал, и это помогло мне увидеть, что «местное отделение не отслеживает восходящий поток». И причиной этого были (очень вероятно) некоторые из моих предыдущих команд git в этой ветви, что, очевидно, привело к отключению отслеживания восходящего потока этой веткой. (По умолчанию после проверки любой ветви, созданной с помощью Jira, ветка является , отслеживающей восходящий поток, поэтому для git push не требуется никаких дополнительных команд / опций.)

В результате (решение) :

  1. Я изменил название ветви, вызвавшей проблему с XXX на XXX_01.

  2. git checkout XXX = > добавить изменения (через git stash apply stash@{0}) => git commit.

  3. git push (без дополнительных команд / опций), и все заработало как положено.

PS Если кто-нибудь знает, как можно непреднамеренно отключить отслеживание восходящего потока по ветви (созданной с помощью Jira), пожалуйста, сообщите нам.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2020

Как уже упоминалось в комментариях, местный филиал не отслеживает восходящий поток. Это можно проверить, запустив git branch -vv. Если локальная ветвь не имеет вышестоящего списка, запустите git push -u origin XXX.

0 голосов
/ 01 апреля 2020

Если вы используете sourcetree в качестве интерфейса для pu sh ваших изменений на сервере Bitbucket, нажмите кнопку терминала. Затем выполните следующую команду с именем удаленной ветви, в которую нужно отправить изменения. git branch --set-upstream <remote-branch>

...