什么是git上游

pat*_*ues 15 git

当你创建了一个github-repo并将github-repo添加为远程时

git remote add origin https://github.com/githubname/reponame.git
Run Code Online (Sandbox Code Playgroud)

然后你需要推送你的第一次提交

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

我读过(为什么我需要一直做`--set-upstream`?)这是一个简短的表格

git branch --set-upstream-to my_branch origin/my_branch
git push
Run Code Online (Sandbox Code Playgroud)

什么是上游,我为什么需要设置它?网上几乎没有关于此的信息.我知道有一个类似的话题'git remote add upstream'帮助实现了什么?,但在我看来,它并没有准确解释上游是什么以及什么git push -u origin master做,特别是origin master指出的是,它是本地回购还是远程回购?

Kla*_*urn 29

在命令中

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

-u标志表示您的本地分支将成为跟踪分支.也就是说,跟踪远程分支的分支,以便将来git pull知道要合并哪个分支git push并将被定向到正确的分支.

origin 是你要推动的遥控器.

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

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

[branch "master"]
    remote = origin
    merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

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

  • branch-refspec并不那么难:`master`缺少`master:master`,其中第一个"master"定义本地,第二个"master"定义远程分支:) (4认同)