我是新来的git,我正在练习。我创建了一个本地分支,但我看到当我这样做时,git push我的分支没有上传到存储库。我不得不实际做:git push -u origin --all。 为什么是这样?默认情况下,分支不是要推送的新更改吗?为什么我需要运行第二个命令?
git
git push
git push -u origin --all
实际原因是,在一个新的仓库(git init)中, 没有分支 (没有master,根本没有分支,零分支)
master
因此,当您第一次推送到一个 _空的_上游仓库(通常是一个裸仓库)时,该上游仓库没有同名的分支。
和:
matching
simple
在这两种情况下,由于上游空仓库没有分支:
这意味着您本地的 第一次 推送不知道:
所以你至少需要做一个:
git push origin master
但如果你只这样做,你:
origin
这就是为什么建议在第一次推送时执行以下操作:
git push -u origin master
这将记录origin/master为远程跟踪分支,并将启用下一次推送自动推master送到origin/master。
origin/master
git checkout master git push
这也适用于推送策略 ‘ current‘ 或 ‘ upstream‘。 在每种情况下,在初始之后git push -u origin master,一个简单的 git push 就足以继续将 master 推送到正确的上游分支。
current
upstream