Git push.default simple不工作

Git push.default simple不工作,git,git-push,Git,Git Push,我将我的push.default设置为simple,并希望它在不显式设置上游的情况下工作。我是否有错误的期望或者我错过了什么 $ git co develop Switched to branch 'develop' Your branch is up-to-date with 'origin/develop'. $ git pull Already up-to-date. $ git co -b 'push_test' Switched to a new branch 'push_test

我将我的
push.default
设置为simple,并希望它在不显式设置上游的情况下工作。我是否有错误的期望或者我错过了什么

$ git co develop
Switched to branch 'develop'
Your branch is up-to-date with 'origin/develop'.

$ git pull
Already up-to-date.

$ git co -b 'push_test'
Switched to a new branch 'push_test'

$ git push
fatal: The current branch push_test has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin push_test


$ git config --list | grep push.default
push.default=simple

$ git config --list
credential.helper=osxkeychain
alias.co=checkout
alias.st=status
user.name=Drew Arrigoni
push.default=simple
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=git@github.com:Foo/foo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.develop.remote=origin
branch.develop.merge=refs/heads/develop
user.email=andrewarrigoni@foo.com

你的期望是错误的:
simple
由于历史原因并不那么简单。新分支的第一次推送需要使用
git push-u
-u
--在
git push
中设置为上游
的简短版本,但不在
git分支
中)。一旦你做到了这一点,
simple
就变得简单了。有没有办法在新创建的分支上自动设置上游?我是否需要研究git钩子或类似的东西?否:基本问题是新分支(例如,
push_测试
)的上游将是
origin/push_测试
,但
origin/push_测试
是您的git对origin的
push_测试
分支的内存。这是不存在的。。。然而一旦你成功地
git推送
,那么他们就有了一个
push\u测试
,所以现在你的git会创建你的
origin/push\u测试
,以记住他们的
push\u测试
,所以现在你可以将它设置为上游。但是,在您尝试创建操作之前,您不知道创建将起作用。(可能他们会拒绝创建
push_测试
,因为其他人只在三秒钟之前创建了一个!)有一条捷径可以使用:如果
push_测试
的上游已经是
origin/push_测试
的话,将
push_测试
的上游设置为
origin/push_测试
是无害的。这意味着您可以在每次推送时使用
-u
。缺点是,如果您这样做,然后选择将分支
push_test
推送到
origin
的分支
master
,则会将上游重新设置为
origin/master
。酷豆!所以类似这样的东西:
git config--global alias.push push-u origin`git rev parse--abbrev ref HEAD`
基本上会做我希望它做的事情,但要注意的是,如果出于任何原因我想推到其他地方,我需要撤销别名。多谢托瑞克!你的期望是错误的:
simple
由于历史原因并不那么简单。新分支的第一次推送需要使用
git push-u
-u
--在
git push
中设置为上游
的简短版本,但不在
git分支
中)。一旦你做到了这一点,
simple
就变得简单了。有没有办法在新创建的分支上自动设置上游?我是否需要研究git钩子或类似的东西?否:基本问题是新分支(例如,
push_测试
)的上游将是
origin/push_测试
,但
origin/push_测试
是您的git对origin的
push_测试
分支的内存。这是不存在的。。。然而一旦你成功地
git推送
,那么他们就有了一个
push\u测试
,所以现在你的git会创建你的
origin/push\u测试
,以记住他们的
push\u测试
,所以现在你可以将它设置为上游。但是,在您尝试创建操作之前,您不知道创建将起作用。(可能他们会拒绝创建
push_测试
,因为其他人只在三秒钟之前创建了一个!)有一条捷径可以使用:如果
push_测试
的上游已经是
origin/push_测试
的话,将
push_测试
的上游设置为
origin/push_测试
是无害的。这意味着您可以在每次推送时使用
-u
。缺点是,如果您这样做,然后选择将分支
push_test
推送到
origin
的分支
master
,则会将上游重新设置为
origin/master
。酷豆!所以类似这样的东西:
git config--global alias.push push-u origin`git rev parse--abbrev ref HEAD`
基本上会做我希望它做的事情,但要注意的是,如果出于任何原因我想推到其他地方,我需要撤销别名。多谢托瑞克!