Git推HEAD - > master尽管set-upstream-to和push.default

时间:2017-01-06 19:42:25

标签: git smartgit

我有一个git repo在使用中没有问题几年。我使用SmartGit来方便做大多数事情。

我最近注意到,当从dev分支从SmartGit进行推送时,它提供用于确认的对话框说“将当前分支'dev'推送到'master'”而不是像以前那样开发dev。

我切换到git cmd行来比较行为,发现它也想推送到master:

$ git push --dry-run
To https://github.com/some_repo.git
   c00bb9e..6a8ade4  HEAD -> master

使用refspec按预期工作,但我似乎无法找到一种方法告诉SmartGit使用该refspec或它如何决定它将推动dev - >主

$ git push origin dev --dry-run
To https://github.com/some_repo.git
   428dd9b..6a8ade4  dev -> dev

Git status和refs按预期显示:

$git status
On branch dev
Your branch is ahead of 'origin/dev' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean

$ git symbolic-ref HEAD
refs/heads/dev

我的配置push.default被设置为'simple',这意味着当前将推送到远程同名并且如果不匹配则抱怨。

git config push.default
simple

我还重置了'upstream-to',仍然是一个普通的git push最终想要做HEAD - >主

$git branch --set-upstream-to origin/dev
Branch dev set up to track remote branch dev from origin by rebasing.

我不知道这可能是什么原因以及如何回到简单的git推送到匹配当前的分支和/或如何让SmartGit停止提供推送电流 - >主

Git版本:2.5.0

SmartGit版本:8.0.3#8135

1 个答案:

答案 0 :(得分:3)

来自git-push(1)

  

如果命令行未指定使用<refspec>...参数或--all--mirror--tags选项推送的内容,则命令会查找默认<refspec>通过咨询remote.*.push配置,如果找不到,请尊重push.default配置以决定推送什么(请参阅git-config(1)了解push.default的含义。< / p>

听起来您将remote.dev.push设置为HEAD