为什么可以';在创建远程repo之后,我就不能进行git推送吗?

为什么可以';在创建远程repo之后,我就不能进行git推送吗?,git,github,git-push,Git,Github,Git Push,创建一个新的GitHub回购非常简单。在命令行上: git init git add . git commit -m "Initial commit" git remote add origin https://github.com/<myuser>/<myRepo>.git git push -u origin master 然后进入GitHub并创建repo,它会为它创建一个GitURL,比如说,https://github.com//.git,等等。然后返回命令

创建一个新的GitHub回购非常简单。在命令行上:

git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/<myuser>/<myRepo>.git
git push -u origin master
然后进入GitHub并创建repo,它会为它创建一个GitURL,比如说,
https://github.com//.git
,等等。然后返回命令行:

git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/<myuser>/<myRepo>.git
git push -u origin master
git远程添加源https://github.com//.git
git-push-u源主机
瞧,你有一个git回购!然而,有些事情不适合我。发出此命令后:

git remote add origin https://github.com/<myuser>/<myRepo>.git
git远程添加源https://github.com//.git
那么我的理解是,您的本地回购“连接到”(再次跟踪)您的远程GitHub回购的远程
master
分支(同样:
https://github.com//.git


那么,为什么我需要在下一个命令中使用
-u origin master
也就是说,为什么我需要上面的最后一个命令是
git push-u origin master
,而不仅仅是
git push
?!本地回购“连接”到远程主机,对吗?!那么为什么我不能只
git推送它呢?

运行
git remote add…
只标记一个远程URL。它没有“连接”任何东西。特别是,它不会在本地分支和远程分支之间建立任何关联。这只会在每个分支的基础上发生(也就是说,说您的存储库连接到另一个存储库是没有意义的;您只能从单个分支的角度讨论跟踪)。只有当您
git checkout
与远程分支相对应的本地分支时,或者当您在运行
git push
时使用
-u
显式设置跟踪信息时,才会设置跟踪关系

考虑一种情况,即您有多个遥控器,例如,您运行了如下操作:

git remote add upstream ...
git remote add origin ...
git remote add anotherdeveloper ...

如果您有一个名为
master
的本地分支,那么除非您明确告诉git,否则git push
应该将您的更改发送到哪些远程分支?

但是,为了公平对待新用户,如果您只有一个远程分支(这是很常见的),并且您在没有参数的情况下运行
git push
,Git尝试将当前分支推送到一个远程分支,并将其设置为当前分支的上游分支,这非常有意义。但Git对新用户不公平。:-)我最近在想-u。谢谢你的简明解释。