Does “-u” in “git push -u origin master” add a reference to a remote tracking branch?
我理解git push中的-u参数将本地分支与其对应的远程分支关联起来,这样git pull和git push就可以在不使用其他参数的情况下使用。
但是,正如此答案(https://stackoverflow.com/a/16018004/8278160)所述:
1
| git push -u origin master |
与以下内容相同:
1
| git push origin master; git branch --set-upstream master origin/master |
号
正如凯西·李在这段视频中所说(https://www.youtube.com/watch?v=xogn0q4sb9o),格式为origin/repo用于指定远程跟踪分支。
因此,上述行中的git branch --set-upstream master origin/master是将本地分支master与其相应的远程跟踪分支(源站/主站)关联,还是直接与远程分支关联?
- "…有相应的远程跟踪分支(源站/主站),还是直接到远程分支?""这些听起来像一样?
- @Ryan这个答案是另外一种说法(stackoverflow.com/a/16408515/8278160),这也是我困惑的主要原因。
- 它将本地分支与远程跟踪分支和远程分支相关联。对于git push,远程跟踪分支和远程分支根据本地分支进行更新。对于git pull,根据远程分支更新远程跟踪分支和本地分支。注意,git push的远程分支和远程跟踪分支可能与git pull的不同。您可以从repoa中拉出并按下repob。
- 注意,git push 有效地扩展到git push :。这要求在的git设置自己的(必要时扩展,以便git push newbr最终成为git push :refs/heads/。如果成功,则意味着远程服务器上的现在映射到相应的散列ID,因此现在您自己的git更新或创建远程跟踪分支,通常称为refs/remotes//。一旦你自己的回购中存在refs/remotes//,你的git就可以将其设置为上游。
associate the local branch, master, with its corresponding remote tracking branch (origin/master), or to the remote branch directly?
号
在本地回购中,没有远程分支,只有远程跟踪分支,它们是本地分支跟踪(即保存在回购中获取的最后一个已知状态的副本)远程分支。
更多信息请参见"很难理解git fetch"。