栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

progit笔记:服务器上的Git

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

progit笔记:服务器上的Git

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号