美文网首页Git
origin vs upstream - Git名词解释

origin vs upstream - Git名词解释

作者: OldChicken_ | 来源:发表于2018-10-28 18:27 被阅读5次

    origin

    在使用过程中经常可以看到origin这个名词,origin(原点)这次词是从哪来的呢?
    要查看当前配置有哪些远程仓库,可以用git remote命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,git 默认使用这个名字来标识你所克隆的原始仓库。
    这就是 origin 的由来,如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 这个标识名下。

    upstream

    upstream 这个名词是在github的Fork功能上衍生出来的。
    对于一些有名的开源项目(这里我选的是spring-framework项目),我们常常会把把这些项目Fork到自己的github上,然后再从自己的github把这个项目clone到本地,这时用git remote -v命令查看一下远程仓库的情况,可以看到:

    $ git remote -v
    origin  https://github.com/Flamingo93/spring-framework.git (fetch)
    origin  https://github.com/Flamingo93/spring-framework.git (push)
    upstream        https://github.com/spring-projects/spring-framework.git (fetch)
    upstream        https://github.com/spring-projects/spring-framework.git (push)
    

    从输出可以看出upstream与origin是并列的关系,他们都是远程仓库的名字,只不过origin是你所克隆的原始仓库的默认名字,upstream是fork的原项目的远程仓库的默认名字。


    upstream & origin

    可以用git fetch [remote-name]命令从远程仓库抓取数据到本地:

    $ git fetch origin        #抓取在你的GitHub仓库上新的提交数据到本地仓库
    $ git fetch upstream        #抓取在著名开源项目的GitHub仓库上新的提交数据到本地仓库
    

    Ref: What is the difference between origin and upstream on GitHub?

    相关文章

      网友评论

        本文标题:origin vs upstream - Git名词解释

        本文链接:https://www.haomeiwen.com/subject/sokmtqtx.html