搭建服务-git

作者: 一点金光 | 来源:发表于2018-09-19 17:45 被阅读0次

    方案1

    # 操作系统:Debian
    
    # 下安装包
    $ sudo apt-get install git
    
    # 创建用户
    # 用来运行git服务
    $ sudo adduser git
    # 创建群组
    $ sudo groupadd -g 101 git
    
    # 创建证书
    # 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件(通过ssh-gen生成时)
    # 把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
    
    # 创建仓库
    # 创建一个/srv/sample.git仓库,在/srv目录下输入命令:
    sudo git init --bare sample.git
    # 这是一个裸仓库,它没有工作区。因为服务器上的Git仓库纯粹是为了共享,不需要用户直接登录到服务器上去改工作区。
    # 并且服务器上的Git仓库通常都以.git结尾
    
    # 更改所属
    sudo chown -R git:git sample.git
    
    # 登录方式
    # 禁用shell登录。出于安全考虑,第二步创建的git用户不允许登录shell。
    # 将/etc/passwd文件内的git:x:1001:1001:,,,:/home/git:/bin/bash改为
    # git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    
    # git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
    
    # 克隆仓库
    # 在本地电脑上
    # server为搭建的私有仓库的服务器地址
    git clone git@server:/srv/sample.git
    
    # 管理公钥
    如果团队很小,把每个人的公钥收集起来放到服务器的`/home/git/.ssh/authorized_keys`文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用[Gitosis](https://github.com/res0nat0r/gitosis)来管理公钥。
    
    # 管理权限
    # 可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。[Gitolite](https://github.com/sitaramc/gitolite)就是这个工具。
    
    
    
    
    # 参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
    

    方案2

    # 操作系统:Centos 
    
    # 安装Git
    $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    $ yum install git
    
    # 创建群组
    $ groupadd git
    # 创建用户
    $ useradd git -g git
    
    # 创建证书
    # 把各个成员的公钥导入到/home/git/.ssh/authorized_keys文件里
    $ cd /home/git/
    $ mkdir .ssh
    $ chmod 755 .ssh
    $ touch .ssh/authorized_keys
    $ chmod 644 .ssh/authorized_keys
    
    # 创建目录
    # 选定一个目录作为Git仓库,假定是/home/gitrepo
    
    # 创建仓库
    # 在/home/gitrepo目录下输入命令git init --bare runoob.git:
    $ cd /home
    $ mkdir gitrepo
    $ chown git:git gitrepo/
    $ cd gitrepo
    
    $ git init --bare runoob.git
    
    # 克隆仓库
    # git clone git@192.168.45.4:/home/gitrepo/runoob.git
    
    # 参考: http://www.runoob.com/git/git-server.html
    
    

    相关文章

      网友评论

        本文标题:搭建服务-git

        本文链接:https://www.haomeiwen.com/subject/nucnmftx.html