为什么 git push all 不需要远程上游分支

Why does git push all not require remote upstream branch

我在我的本地仓库上创建了一个新分支并向它添加了一个提交,然后使用 git push --all 将它(连同主服务器上的更改)推送到我的远程仓库,效果很好,即它创建了一个与本地分支同名的新远程分支,并将更改推送到那里。

但是,在检出新分支的同时使用 git push 时,会出现 fatal: The current branch ... has no upstream branch. 错误。

为什么 git push --all 采用默认分支而 git push 不采用?

git push 的文档表明 --all 将采用所有分支的默认值。 https://git-scm.com/docs/git-push

--all: Push all branches (i.e. refs under refs/heads/); cannot be used with other <refspec>.

香草 git push 不一样。但是,您可以在 git 配置中指定类似以下内容,以使 git push 默认为当前分支。

[push]                   
    default = current