progit笔记:服务器上的Git

本文详细介绍了Git的四种传输协议:本地、HTTP(智能与哑)、SSH以及Git协议。本地协议简单但不安全,HTTP协议提供了授权功能,SSH协议安全高效但不支持匿名,Git协议则速度最快但缺乏授权机制。同时,文章提到了创建裸仓库的方法和生成SSH公钥的过程,并讨论了如何根据需求选择合适的协议。最后,提到了GitLab、GitHub和Gitee等第三方托管平台。
摘要由CSDN通过智能技术生成

Progit学习笔记:服务器上的Git

裸仓库是工程目录内的 .git子目录内容,不包含其他资料。

协议

Git可以使用四种协议传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git协议。

本地协议
本地协议(Local protocol) ,其中的远程版本库就是同一主机上的另一个目录。

# 克隆本地版本库
$ git clone /srv/git/project.git
# 指定 file://
$ git clone file:///srv/git/project.git

指定路径:Git 会尝试使用硬链接(hard link)或直接复制所需要的文件。

file://:Git 会触发平时用于网路传输资料的进程,那样传输效率会更低,主要目的是取得一个干净版本库副本。

# 增加一个本地版本库到现有的Git项目,可以祥网络一样推送和拉取了
$ git remote add local_proj /srv/git/project.git
  • 优点:
    简单,并且直接使用了现有的文件权限和网络访问权限

  • 缺点:共享文件系统比较难配置,并且比起基本的网络连接访问,这不方便从多个位置访问;议并不保护仓库避免意外的损坏。

HTTP协议

智能HTTP协议:支持像git://协议一样设置匿名服务, 也可以像SSH协议一样提供传输时的授权和加密,只用一个URL就可以做到。

  • 智能HTTP协议优点: 只需要一个URL以及服务器只在需要授权时提示输入授权信息;HTTPS 协议被广泛使用。

  • 智能HTTP协议缺点:在一些服务器上,架设 HTTPS 协议的服务端会比 SSH 协议的棘手一些;在HTTP上使用需授权的推送,管理凭证会比使用SSH密钥认证麻烦一些。

哑(Dumb)HTTP协议:仅把裸版本库当作普通文件来对待,提供文件服务。

SSH协议

# SSH 协议克隆版本库,指定一个 ssh:// 的 URL
$ git clone ssh://[user@]server/project.git
# 简短的 scp 式的写法
$ git clone [user@]server:project.git
  • 优点:SSH 架设相对简单 —— SSH 守护进程很常见;通过 SSH 访问是安全的(传输数据都要经过授权和加密)、高效的(在传输前也会尽量压缩数据)。
  • 缺点:它不支持匿名访问Git仓库。

Git协议

包含在Git里的一个特殊的守护进程;它监听在一个特定的端口(9418),类似于SSH服务,但是访问无需任何授权。

  • 优点:Git 协议是 Git 使用的网络传输协议里最快的,使用与 SSH 相同的数据传输机制,但是省去了加密和授权的开销。
  • 缺点:是缺乏授权机制;Git 协议也许也是最难架设的。

一般的做法里,会同时提供SSH或者HTTPS协议的访问服务,只让少数几个开发者有推送(写)权限,其他人通过 git:// 访问只有读权限。

创建一个新的裸仓库

# 相当于$ cp -Rf my_project/.git my_project.git
$ git clone --bare my_project my_project.git

生成SSH公钥

默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。

$ ssh-keygen

第三方托管的选择

GitLab、GitHub、Gitee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值