GIT学习-03服务器上的Git

注意 本人的博客都迁移到本人自己搭建的博客地址,通过此处可查看。

一、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 [email protected]:/opt/git 
    读写:git clone [email protected]:/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使用文档请看:

  1. git学习-01基础
  2. gitx学习-02分支
  3. git学习-04git-svn的使用
发布了53 篇原创文章 · 获赞 29 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章