29

当您创建了 github-repo 并将 github-repo 添加为远程

git remote add origin https://github.com/githubname/reponame.git

那么你需要推送你的第一个提交

git push -u origin master

我读到(为什么我需要一直做`--set-upstream`?)这是一个简短的形式

git branch --set-upstream-to my_branch origin/my_branch
git push

什么是上游,为什么我需要设置它?网上关于这方面的信息很少。我知道有一个类似的主题“git remote add upstream”有助于实现什么?,但在我看来,它并没有准确解释上游是什么以及做什么git push -u origin master,尤其是origin master指向什么,是本地仓库还是远程仓库?

4

2 回答 2

44

在命令中

git push -u origin master

-u标志意味着您的本地分支将成为跟踪分支。也就是说,一个跟踪远程分支(“上游”分支)的分支,以便将来git pull知道要从哪个分支合并,git push并将被定向到正确的远程分支。

origin是您要推送到的远程存储库。

master是 refspec 参数。refspec 参数指定将哪个本地分支推送到哪个远程分支。它可能很复杂,但在这种情况下,缩写形式master意味着将本地master分支推送到具有相同名称的远程分支,origin/master.

从技术上讲,跟踪会将有关master分支的以下信息添加到您的.git/config:

[branch "master"]
    remote = origin
    merge = refs/heads/master

它在这里创建一个文件.git/refs/remotes/origin/master,代表远程分支。

于 2013-06-15T09:50:07.070 回答
2

“上游”是您从中克隆(某些)分支的存储库,以及在提交更改后将更改推送到这些分支(以及可选的整个新分支)的位置。GitHub 充当您的上游,因为它们为您存储修订,在一个集中的位置。

于 2013-06-15T09:44:23.517 回答