BitBucket нажимает на модель филиала

Я создал новую ветку на сервере битбакет (частный хостинг). Bitbucket имеет несколько типов веток, таких как «исправления», «функции» и т. д. Я создал одну, используя модель ветки «функция». Имя ветки в списке веток стало «feature/mybranchname». Делаю обычные git fetch, git checkout -b mybranchname origin/feature/mybranchname и начинаю работать.

Но проблема в том, что любые новые изменения, которые я сделал в ветке «mybranchname», не могут быть переданы на удаленный сервер. Всякий раз, когда выполняется git push, будет обновляться только master, даже если в статусе git указано, что X фиксируется перед "origin/feature/mybranchname".

git push -u origin mybranchname создаст на сервере новую ветку без имени "feature", поэтому она дублируется в новую ветку.

git push feature/mybranchname вернет следующее.

fatal: 'feature/mybranchname' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

```

Нашел этот аналогичный вопрос, но без каких-либо решение. Нашел эту документацию от atlassian, в которой указано, что модель ветвления и тому подобное, но без упоминания о том, как их нажимать.

Ожидаемый результат: локальные коммиты из «mybranchname» передаются в удаленную «feature/mybranchname» без выполнения слияния из веб-интерфейса.


person thuyein    schedule 02.05.2018    source источник
comment
Вы пытались проверить, существует ли ветка? git checkout feature/mybranchname   -  person Tan Duong    schedule 02.05.2018
comment
Я использовал git checkout -b mybranchname feature/mybranchname, и он не может нажать. Но когда я просто делаю git checkout feature/mybranchname, это работает. Вы хотите изменить его, чтобы ответить?   -  person thuyein    schedule 02.05.2018
comment
да. я разместил свой ответ   -  person Tan Duong    schedule 02.05.2018
comment
Я написал почему это правильный вариант.   -  person VonC    schedule 02.05.2018


Ответы (2)


Я думаю, вы можете использовать git checkout feature/mybranchname

И создайте новую ветку с git checkout -b mybranchname

И git push -u origin mybranchname

person Tan Duong    schedule 02.05.2018

Вам нужно указать удаленное репо:

gut push -u origin feature/mybranchname

Затем ваш локальный feature/mybranchname будет связан с его удаленным аналогом origin/feature/mybranchname, и тогда будет достаточно простого git push.

ОП добавляет:

Я создал новую ветку, используя git checkout -b mybranchname feature/mybranchname, но вместо этого она должна быть просто git checkout feature/mybranchname

Да, потому что на справочной странице git checkout упоминается:

git checkout <branch>

Если <branch> не найдено, но существует отслеживающая ветвь ровно на одном удаленном (назовем его ) с совпадающим именем, рассматривается как эквивалент

git checkout -b <branch> --track <remote>/<branch>

Обратите внимание, что в этом случае вам не нужно git push -u origin feature/mybranchname: снова достаточно простого git push, так как локальная ветка уже связана с удаленной веткой отслеживания.

person VonC    schedule 02.05.2018
comment
Спасибо за Ваш ответ. Это было первое, что я попробовал, он обновлял только удаленный/главный сервер, не обновляя ветку функций. Судя по всему, комментарий @Tang Duong дал мне решение. Я создал новую ветку, используя git checkout -b mybranchname feature/mybranchname, но вместо этого она должна быть просто git checkout feature/mybranchname, и она настроила отслеживание, и все в порядке. - person thuyein; 02.05.2018
comment
@ThuYeinTun Я включил ваш комментарий в ответ для большей наглядности, а также в соответствующую часть справочной страницы git checkout, которая объясняет, почему это работает. - person VonC; 02.05.2018