Git 推送 HEAD -> master 尽管 set-upstream-to 和 push.default
Git pushes HEAD -> master despite set-upstream-to and push.default
我有一个 git 存储库,使用了几年没有问题。为了方便做大多数事情,我使用 SmartGit。
我最近注意到,在从 dev 分支从 SmartGit 进行推送时,它显示的用于确认的对话框显示 "Push current branch 'dev' to 'master'" 而不是像以前那样从 dev 到 dev。
我切换到 git cmd 行来比较行为,发现它也想推送到 master:
$ git push --dry-run
To https://github.com/some_repo.git
c00bb9e..6a8ade4 HEAD -> master
使用 refspec 推送按预期工作,但我似乎无法找到一种方法告诉 SmartGit 使用该 refspec 或者它如何决定它将推送 dev -> master。
$ git push origin dev --dry-run
To https://github.com/some_repo.git
428dd9b..6a8ade4 dev -> dev
Git 状态和参考按预期显示:
$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 推送最终想要执行 HEAD -> master。
$git branch --set-upstream-to origin/dev
Branch dev set up to track remote branch dev from origin by rebasing.
我不知道这可能是什么原因以及如何回到简单的 git 推送到与当前匹配的分支 and/or 如何获得 SmartGit 停止提供推送电流 -> master。
Git版本:2.5.0
智能Git版本:8.0.3#8135
来自 git-push(1)
:
When the command line does not specify what to push with <refspec>...
arguments or --all
, --mirror
, --tags
options, the command finds the default <refspec>
by consulting remote.*.push
configuration, and if it is not found, honors push.default
configuration to decide what to push (See git-config
(1) for the meaning of push.default
).
听起来您已将 remote.dev.push
设置为 HEAD
。
我有一个 git 存储库,使用了几年没有问题。为了方便做大多数事情,我使用 SmartGit。
我最近注意到,在从 dev 分支从 SmartGit 进行推送时,它显示的用于确认的对话框显示 "Push current branch 'dev' to 'master'" 而不是像以前那样从 dev 到 dev。
我切换到 git cmd 行来比较行为,发现它也想推送到 master:
$ git push --dry-run
To https://github.com/some_repo.git
c00bb9e..6a8ade4 HEAD -> master
使用 refspec 推送按预期工作,但我似乎无法找到一种方法告诉 SmartGit 使用该 refspec 或者它如何决定它将推送 dev -> master。
$ git push origin dev --dry-run
To https://github.com/some_repo.git
428dd9b..6a8ade4 dev -> dev
Git 状态和参考按预期显示:
$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 推送最终想要执行 HEAD -> master。
$git branch --set-upstream-to origin/dev
Branch dev set up to track remote branch dev from origin by rebasing.
我不知道这可能是什么原因以及如何回到简单的 git 推送到与当前匹配的分支 and/or 如何获得 SmartGit 停止提供推送电流 -> master。
Git版本:2.5.0
智能Git版本:8.0.3#8135
来自 git-push(1)
:
When the command line does not specify what to push with
<refspec>...
arguments or--all
,--mirror
,--tags
options, the command finds the default<refspec>
by consultingremote.*.push
configuration, and if it is not found, honorspush.default
configuration to decide what to push (Seegit-config
(1) for the meaning ofpush.default
).
听起来您已将 remote.dev.push
设置为 HEAD
。