Git 里面的 origin 到底代表啥意思?

Git 里面的 origin 到底代表啥意思?git工作区什么是origin?在解答之前,我们先来回顾下git的工作区、暂存区、git仓库基础概念

git工作区

什么是origin?在解答之前,我们先来回顾下git的工作区、暂存区、git仓库基础概念。

git有三种状态:已提交(committed)、已修改(modified)和已暂存(staged):

  • 已提交
    数据已经安全的保存在本地数据库
  • 已修改
    修改了文件,但是还没保存到数据库中,发生在工作区
  • 已暂存
    对修改的文件的当前版本做了标记,让他包含在下次提交的快照当中。发生在暂存区,英文叫stage

什么是origin

你的代码库(repository)可以存放在你的电脑里,同时你也可以把代码库托管到Github的服务器上。在默认情况下,origin指向的就是你本地的代码库托管在Github上的版本。

我们假设你首先在github上创建了一个Repository,叫做repository,假设你的Github ID是user1,这个时候指向你的代码库的链接是

https://github.com/user1/repository

如果你在terminal里输入:

git clone https://github.com/user1/repository

那么git就会克隆一份托管在github上的代码库至本地,这时,本地仓库和远程仓库建立连接,这个时候你cd到repository目录,可以查看映射关系:

$ git remote -v

你会看到控制台输出:

`origin` https://github.com/user1/repository.git (fetch)
`origin` https://github.com/user1/repository.git (push)

也就是说git为你默认创建了一个指向远端代码库的标识origin,没有特殊意义,只是一个默认的习惯,比如叫zhangSan也可以。

那么为什么要创建这个标识呢?因为有时候,我们本地的一个仓库会同时关联2个远程仓库。

暂且不讨论原因。

再假设现在有一个用户user2 fork了你个repository,那么他的代码库链接就是这个样子:

https://github.com/user2/repository

fork是在远程服务器上克隆一份仓库,新的仓库也存在远程服务器

如果用户user2也照着这个url clone一把,然后在他的控制台(另一台电脑)里输入:

git remote -v

他会看的的就是:

origin https://github.com/user2/repository.git (fetch)
origin https://github.com/user2/repository.git (push)

可以看的origin指向的位置是user2的的远程代码库

这个时候,如果user2想加一个远程指向你的代码库,他可以在控制台输入:

git remote add upstream https://github.com/user1/repository.git

然后再输入一遍:

git remote -v

输出结果就会变为:

`origin` https://github.com/user2/repository.git (fetch)
`origin` https://github.com/user2/repository.git (push)
`upstream` https://github.com/user1/repository.git (push)
`upstream` https://github.com/user1/repository.git (push)

增加了指向user1代码库的upstream,这也是一个标识,这个是我们自己定义的,只是用来区分user1还是user2的远程仓库,upstream的名称只要不和已经出现的默认值origin重复就行

当我们需要推送一个提交时:

git push origin master

说明我们想把这个最新的提交记录提交至远程的origin 所对应的库;如果想提交至upstream,需要改写为:

git push upstream  master

参考 Git 里面的 origin 到底代表啥意思?
git工作区、暂存区、git仓库基础概念

今天的文章Git 里面的 origin 到底代表啥意思?分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64135.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注