BitBucket push to feature клон модел

Създадох нов клон на 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 ще създаде нов клон на сървъра без името "функция", следователно се дублира в нов клон.

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 man страницата, която обяснява защо това работи. - person VonC; 02.05.2018