安路的技术博客

Nothing in life is to be feared. It is only to be understood

Git远程版本库

| Comments

Git分布特性之一就是远程版本库, 一个克隆是版本库的副本。一个克隆包含所有原始对象;因此,每个克隆都是独立,自治的版本库,与原始版本库是真正对称,地位相同的。一个克隆允许开发人员可以在本地独立的工作,不需要中心版本库。总之,克隆使得Git易于扩展,并允许地理上分离的很多贡献者一起协作。 从本质上讲,分离的版本库是相当有用的。

  • 开发人员独立工作
  • 开发人员被广域网分离。在相同地区的一群人可以共享一个本地版本库来积累局部变化
  • 一个项目预计在不同的发展线上有显著差异。

克隆版本库只是分享代码的第一步,此外,还必须对版本库之间进行关联,为数据建立路径。Git通过远程版本库为这些版本建立连接。

远程版本库是一个引用或者句柄,通过文件系统或网络指向另一个版本库。可以使用远程版本库作为简称,代替又长又复杂的Git URL。可以在版本库中定义任意数量的远程版本库,从而创建共享版本库的阶梯网络。

一旦远程版本库建立,Git就可以使用推模式或者拉模式在版本库之间传输数据。例如,习惯做法是偶尔从原始版本库转移提交数据到克隆版本库,已保持克隆版本库处于同步状态。还可以创建一个远程版本库来克隆版本传输数据到原始版本库,或设置两个版本库进行双向交换。

版本库的概念

开发版本库用户常规的日常开发。它保持当前分支的概念,并在工作目录中提供检出当前分支的副本。相反,一个裸版本库没有工作目录,并且不应该用于正常开发。裸版本库也没有检出分支的概念。裸版本库可以简单地看做.git目录的内容。换句话说,不应该在裸版本库中进行提交操作。

版本库克隆

git clone 命令去创建一个新的git版本库,基于你通过文件系统或网络地指定的原始版本库。Git并不需要复制原始版本库的所有信息。

在正常使用Git clone命令时,原始版本库中存储在refs/heads/下的本地开发分支,会成为新的克隆版本库中refs/remotes/下的远程追踪分支。

远程版本库

你目前在工作中使用的版本库成为本地版本库,你交换文件用的版本库成为远程版本库(remote repository).Git使用远程版本库和远程追踪分支来引用另一个版本库,并有助于与该版本库建立连接。远程版本库位版本库提供了更友好的名字,可以代替版本库实际的URL。

使用 git remote 命令创建,删除,操作和查看远程版本库,你引入的所有远程版本库都记录在.git/config文件中,可以用git config来操作。

除了git clone之外,跟远程版本库有关的其他常见的git命令有:

git fetch ->从远程版本库抓取对象及其相关的元数据
git pull  ->跟git fetch类似,但合并修改到相应的本地分支
git push -->转移对象及其它元数据到远程版本库
git ls-remote->显示一个给定的远程版本库(在上游服务器上)的引用列表

引用其它版本库

Comments