file://本地路径/project.git
相当于本地读取,是本地资源访问,无加密无认证,数据在本地传输
http现如今使用的基本上是智能的http协议,像 GitHub、Gitee、码云上的开源项目,都是此类。
优点是免设置 ssh 公钥,验证机制灵活,可通过 用户名+密码 形式授权
git clone https://github.com/schacon/simplegit.gitssh
形如 ssh: //username@Host/project.git 或者 user@Host:project.git
后者的缩写形式,不带 ssh 前缀,值得注意
$ git clone ssh://[user@]server/project.git 或者 $ git clone [user@]server:project.git
优点是有 ssh 认证,传输会压缩对象
不支持匿名访问,不利于开源项目
git形如 git://Host/projet.git
比较好辨认,以 git :// 开头
git push --mirror git://10.22.xx.xx/myproject.git
git 协议本身没有加密功能,但速度最快
监听 9418 端口
要求有自己的守护进程,这就是我们为什么需要 xinetd 的原因
xinetdxinetd 中的配置在 /etc/xinetd.d/git-daemon
service git { disable = no type = UNLISTED port = 9418 socket_type = stream wait = no server = /usr/bin/git server_args = daemon --inetd --syslog --export-all --enable=upload-pack --enable=receive-pack --base-path=/home/work/repositories/ }
其中,base-path 设置了仓库根目录,git://ip/project.git 实际上访问的是 ip 主机上 base-path/project.git
总结协议类型
优点
缺点
举例
本地
简单方便
远程访问困难
$ git clone file://srv/git/project.git
HTTP
验证灵活,不用配公钥
管理凭证麻烦
$ git clone https://github.com/schacon/simplegit.git
SSH
安全、高效
不支持匿名访问、需要配置用户名密钥
$ git clone ssh://[user@]server/project.git 或 [user@]server:project.git
Git
速度最快
服务搭建稍复杂、依赖守护进程如xinetd
$ git push --mirror git://ip/myproject.git
通过 replication 插件来完成主机与从机之间的代码同步
插件配置路径为 WORK-DIR/gerrit-site/etc/replication.config
[remote "replica"] url = git://10.xxx.xxx.xxx/miui/${name}.git push = +refs/*:refs/* threads = 1000 mirror = true timeout = 50 replicationDelay = 0
方式一: git 协议,git://Host/project.git
方式二:ssh 协议,ssh ://username@Host:/miui/platform/base.git
或 username@Host:/home/work/miui/platform/base.git
手动push也可以使用上述两者协议
git push --mirror git://ip/myproject.git 或者
git push --mirror git@ip:/home/work/myproject.git
gitolite按上所述,因为 git 协议无加密,所以 gitolite 的作用就是在 git server 与用户之间建立了一层认证。
gitolite 安装后,ssh daemon 不再直接使用 git-upload-pack or git-receive-pack 来进行代码的推拉,而是用 gitolite-shell 来取代了。
Question- git@10.xxx.xxx.xx:/miui/test.git 是什么协议?
- 如果没有 xinetd 或者 xinetd service 被关闭,git://ip 是否可以使用?
-- 不能, fatal: unable to connect to xxxxx: errno=Connection refused
- gitolite 问题。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)