git push origin branchname总是推动掌握

时间:2014-12-06 07:41:58

标签: git git-push

我搜索了一下,但似乎无法找到答案。

在我可以访问的两个框中,当我执行" git push --dry-run origin mytestbranch"时,我得到以下结果:

To git@bitbucket.org:rien/test.git
 * [new branch]      test -> test

但是,在我的macbook上,当我尝试相同的命令时,我得到以下结果:

To git@bitbucket.org:rien/test.git
   417248a..cf7d564  test -> master

只有当我明确表示推送到测试原点分支(git push --dry-run origin test:test)时才会按预期工作。

如何更改它以便基本git push --dry-run bb test将推送到新创建的远程分支而不是主控?

我使用git checkout -b test origin/master

在两个方框上创建了测试分支

编辑添加: - 两个分支的git config push.default设置为tracking

我特别想知道如何配置git,以便在我输入git push origin test时它与git push origin test:test的行为相同

1 个答案:

答案 0 :(得分:6)

检查 push policy

是否存在差异
git config push.default

我怀疑在第一个方框中,推送是“简单的”

git config push.default simple

另请检查第二个分支上的测试分支的 upstream branch

git config branch.test.merge

在第二个分支上,可能没有定义它(因此默认值为master)

can set it explicitly

git checkout test
git branch -u origin/test
# or
git push -u origin test:test

OP rien添加in the comments

  

在注意到我为这些盒子提供了不同版本的git之后,我再看了一遍,发现如果我将 push.default 设置为 simple < / strong>或matching对于git版本1.9.3,git push origin test按预期工作   对于此版本的git,似乎不推荐使用tracking push.default,因此它不理解它。