我在bitbucket服务器上创建了一个新分支(私有托管)。 Bitbucket有多种分支类型,如" hotfixes"," feature"等。我使用"功能"创建了一个。分支模型。分支列表中的分支名称变为" feature / mybranchname"。
我按常规git fetch
,git checkout -b mybranchname origin/feature/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.
```
发现this类似的问题,但没有任何解决方案。 从atlassian找到this文档,说明什么是分支模型等,但没有提到如何推送它们。
预期结果:来自" mybranchname"的本地提交被推到遥远的"功能/ mybranchname"没有从Web UI进行合并。
答案 0 :(得分:2)
您需要指定远程仓库:
gut push -u origin feature/mybranchname
然后,您的本地feature/mybranchname
将与其远程跟踪对应origin/feature/mybranchname
相关联,然后只需一个简单的git push
即可。
OP补充道:
我使用
git checkout -b mybranchname feature/mybranchname
创建了一个新分支,但它应该只是git checkout feature/mybranchname
是的,因为git checkout man page mentions:
git checkout <branch>
如果找不到
<branch>
但是在一个具有匹配名称的远程(称为)中确实存在跟踪分支,则将其视为等效于
git checkout -b <branch> --track <remote>/<branch>
请注意,在这种情况下,您不需要 git push -u origin feature/mybranchname
:再次,简单的git push
就足够了,因为本地分支已经链接到远程跟踪分支
答案 1 :(得分:1)
我认为您可以使用git checkout feature/mybranchname
使用git checkout -b mybranchname
git push -u origin mybranchname