当前位置:首页 > Web开发 > 正文

使用的命令是git clone 远程仓库地址 而不是 git clone --origin 本地名字

2024-03-31 Web开发

  Git 的官网上有很详细的使用教程(固然有翻译版本),具体地点是 https://git-scm.com/book/zh/v2。独一不敷就是,很多讲解并没有实机演示。但是,毫无疑问,官网资料是最全面的!如果有任何疑问,可以去官网看看!

协议

  Git 凡是也会有个长途货仓。用来协调各个参预者的事情!这与上一代集中式版本控制系统的感化根基类似。一个长途货仓凡是只是一个裸货仓(bare repository),即一个没有当前事情目录的货仓。 因为该货仓仅仅作为合作媒介,不需要从磁盘查抄快照;存放的只有 Git 的资料。 简单的说,裸存货仓就是你工程目录内的 .git 子目录内容,不包罗其他资料。
  Git 本地货仓与长途货仓之间的交互需要遵循必然的协议。Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议。

本地协议(Local)

  本地协议主要是针对版本库就是硬盘内的另一个目录的情况。常见于团队每一个成员都对一个共享的文件系统(例如一个挂载的 NFS)拥有访谒权。使用本地协议,就可以从本地版本库克隆(clone)、推送(push)以及拉取(pull)代码。这与操纵其他长途货仓一样!
  如果在 URL 开头明确的指定 file://,那么 Git 的行为会略有差别。 如果仅是指定路径,Git 会测验考试使用硬链接(hard link)或直接复制所需要的文件。 如果指定 file://,Git 会触发平时用于网路传输资料的进程。如下:

git clone /opt/git/project.git # 区别于 git clone file:///opt/git/project.git

 

我们可以使用本地协议来模拟学习 Git。如下:

成立一个目录,用来存放 Git 货仓(一个目录作为长途货仓,一个目录作为本地货仓),然后在长途货仓中,创建一个裸存货仓。如下图:

技术图片


在 Git 中,裸存货仓凡是是 名 + .git 的形式!

在本地货仓,我们就可以直接克隆我们的长途货仓了,如下图:

技术图片


Git 会给出提示,我们正在克隆一个裸存货仓!注意,我们克隆货仓时,没有指定路径(含名称),因此默认名称就是长途货仓的名字。

在本地货仓添加一个文件,并提交,如下图:

技术图片

将本地货仓推送到长途货仓,如下图:

技术图片


告成推送之后,在长途货仓中会有对应的记录。如上图所示的长途货仓的 objects 目录。

此时,我们就可以再成立一个 Local2,也来克隆我们的本地长途货仓,验证一下有没有 Local 推送的 a.txt 文件,如下图:

技术图片


其实,使用长途协议的流程与本地协议是一样的!

HTTP 协议

  按照 Git 官网的描述,Git 通过 HTTP 通信有两种模式。 在 Git 1.6.6 版本之前只有一个方法可用,十分简单并且凡是是只读模式的;Git 1.6.6 版本引入了一种新的、更智能的协议,让 Git 可以像通过 SSH 那样智能的协商和传输数据。这两种模式分袂被称为 哑(Dumb) HTTP 协议智能(Smart) HTTP 协议
  哑 HTTP 协议里 web 处事器仅把裸版本库看成普通文件来看待,供给文件处事。智能(Smart) HTTP 协议在处事端运行了两组进程,,分袂卖力上传[客户真个进程连接随处事端进程]和下载数据[客户真个进程连接处事端],它们可以读取本地数据,理解客户端有什么和需要什么,并为它生成合适的包文件。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32282.html