为什么我不能在创建远程仓库后执行git push?

问题描述 投票:1回答:1

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

git init
git add .
git commit -m "Initial commit"

然后你进入GitHub并创建你的repo,为它创建一个Git URL,比如https://github.com/<myuser>/<myRepo>.git等。然后你回到命令行:

git remote add origin https://github.com/<myuser>/<myRepo>.git
git push -u origin master

瞧 - 你有一个git回购!然而,有些东西并不适合我。发出此命令后:

git remote add origin https://github.com/<myuser>/<myRepo>.git

然后我的理解是你的本地仓库是“连接到”(被跟踪)远程GitHub仓库的远程master分支(再次:https://github.com/<myuser>/<myRepo>.git)。

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

git github git-push
1个回答
3
投票

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

考虑一种你有多个遥控器的情况,例如:你运行了类似的东西:

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

如果你有一个名为master的本地分支,除非你明确地告诉git,否则git push应该向哪些遥控器发送你的更改?

© www.soinside.com 2019 - 2024. All rights reserved.