GIT学习-03服务器上的Git
来源:互联网 发布:java 局部变量 编辑:程序博客网 时间:2024/06/15 21:22
一、Git在服务器上
远程仓库时一个裸仓库(bare repository):一个没有当前工作目录的仓库,仅存放Git的数据,即工作目录中的.git子目录内的内容就是裸仓库
1、协议
Git可以使用的协议有:本地传输、SSH协议、Git协议和HTTP协议(除了HTTP协议外,其他协议都需要在服务器端安装并运行Git)。 1.1 本地协议 简单的说就是硬盘上的另一个目录,常见的是团队成员对一个共享的文件系统有用访问权限 ①、克隆仓库 git clone /opt/git/project.git ②、添加本地仓库作为现有Git项目的远程仓库 git remote add local_proj opt/git/project.git ③、优点:简单、同时保留现存文件的权限和网络访问权限;缺点:难以控制从不同位置来的访问权限,最主要的是访问数据的速度慢。
1.2 SSH协议
最常用的一种Git传输协议,其原因:SSH协议也是唯一同时支持读写操作的网络协议;SSH同时也是一个验证授权的网络协议;因为普通,所以架设容易 ①、克隆仓库 git clone ssh://user@server/project.git git clone user@server/project.git :不指名协议,Git默认SSH ②、优点:可以对网络仓库进行写的权限;架设简单;访问的安全性可以保障,所有数据的传输都是加密和授权的;高效性,在传输之前会压缩数据;缺点:不能进行匿名访问,不利于开源项目
1.3 Git协议
包含在Git软件包中的特殊守护进程;它监听一个提供类似于SSH服务器的特点端口(9418),而无需任何授权。
1.4 HTTP/S协议
架设的简便性:将Git的裸仓库文件放在HTTP的根目录下,配置一个特定的post-update挂钩(hook)就OK了。 ①、通过HTTP对仓库进行读取: cd /var/www/htdocs git clone --bare /path/to/git_prj gitprj.git cd gitprj.git mv hooks/post-update.sample hooks/post-update chmod a+x hooks/post-update git update-server-info:确保HTTP的正常工作 ②、优点:易于架设,可以加密传输内容;使用特定签名的SSL证书;一个额外的好处--HTTP是一个常见的协议,以至于企业级防火墙都允许其端口的通信;缺点:客户端效率较低,克隆或者下载仓库内容花费时间较多,网络开销大,常被称为傻瓜(dumb)协议。
二、在服务器上部署Git
在架设之前首先把现有仓库导出为一个裸仓库:git clone --bare prjName prjName.git,并且prjName.git的目录中已经有一份Git目录数据的副本。即:cp -Rf prjName/.git prjName.git
2.1 将裸仓库移到服务器上
访问:scp -r prjName.git user@git.example.com:/opt/git 读写:git clone user@git.example.com:/opt/git/prjName.git 有读写就有推送权限:git init --shared:Git会自动修改仓库目录的组权限为可写。 注意:若是在一个不公开的项目上合作,仅仅需要一个SSH服务器和裸仓库就OK了。
2.2 SSH连接
①、为每个人建立一个账户,反复使用adduser添加用户设置密码——不可取。 ②、在主机上建立一个Git账户,让每个需要写权限的人发送一个SSH公钥,然后加入git账户的~/.ssh/authorized_keys文件; ③、让SSH服务器通过某个LDAP服务或者已经设定好的集中授权机制,进行授权。
三、生成SSH公钥
SSH公钥默认存储在账户的主目录下的~/.ssh目录,查看是否有id_dsa或者id_rsa,有.pub后缀的文件就是公钥,另一个文件这是密钥。 3.1 创建SSH公钥:ssh-keygen
将公钥发给需要的人就OK。
公钥的内容:
其他关于git使用文档请看:
- git学习-01基础
- gitx学习-02分支
- git学习-04git-svn的使用
阅读全文
0 0
- GIT学习-03服务器上的Git
- git学习——服务器上的 Git
- 服务器上的git
- 服务器上的git
- 服务器上的Git
- 服务器上的 Git
- 服务器上的 Git
- 服务器上的 Git
- 服务器上的 Git
- 服务器上的 Git
- 服务器上的 Git
- Git(5)服务器上的Git
- Git用户手册--远程管理-服务器上的Git
- 服务器上的 Git - 在服务器上部署 Git
- 4.2 服务器上的 Git - 在服务器上部署 Git
- 服务器上的 Git - 在服务器上搭建 Git
- 4.2 服务器上的 Git - 在服务器上搭建 Git
- 4.4 服务器上的 Git - 架设服务器
- python练习题2 从两个DNA序列中找到突变位点的数量
- 赋值
- Siamese
- Matlab2012b&Simulink licence失效解决办法(重复激活解决方案)
- vim 配置命令及插件
- GIT学习-03服务器上的Git
- error in cryptography setup command: Invalid environment marker: python_version < '3'
- PAT 1023. 组个最小数 (20)
- 设计模式——装饰模式
- ActiveMQ的安装
- MVP+OKhttp,拦截器+XRecyclerView+ImageLoader(Glide)
- 将二叉树拆成链表
- C++11标准之右值引用(ravalue reference)
- apache-1.3.39在ARM上的移植