美文网首页辅助资料iOS学习
GitBlit 搭建自己git版本控制中心

GitBlit 搭建自己git版本控制中心

作者: 水在玩焱 | 来源:发表于2017-05-23 13:57 被阅读884次

    前言

    为什么要介绍GitBlit来搭建git服务器呢?由于之前介绍过一篇搭建本地cocoapods库,可是如果是基于github的话仍然是公开的,当然你可以花钱买私有仓库(repository)权限。或者选用其他具有免费私有git服务网站,但对于无法访问公网的一些公司,搭建一个自己的或者公司,企业内部的小型git服务中心还是挺不错的。废话少说,下面就简短介绍基本搭建方法。

    <h2 id="1">基础配置<h2>

    推荐查看官方设置文档,和查看default.properties文件注释说明。

    1. 打开data文件夹下的default.properties配置http/https服务端口号,服务密码等

       #设置为0时及关闭对应服务
       #当配置好https后推荐关闭http服务-安全是很重要的O(∩_∩)O~~
       server.httpPort = 19991
       server.httpsPort = 9119
       
       #这个是ssl的加密的密码(不能输入 "#")
       server.storePassword = gitblit 
       
       #单次提交最大尺寸默认8k,你觉得上传图片有保障吗?
       git.packedGitLimit = 20m
       
       #git库的文件存放目录
       git.repositoriesFolder = [你想要存放文件的路径]
      

      当初在这里默默被坑,最后发现这个密码最多只能设置7位,超过就报错.原因:是缺少一个JCE文件导致密码被限制长度,当初刷一下就过去了根本不会看那么细啊,有木有同样踩坑的(๑•ᴗ•๑)。(当然下载安装后就解除限制了)

      jce.png
      ps:本地单项目处理大文件无法上传
      其实很简单,在项目的.git/config里加入:
      threads = 1 00
      deltaCacheSize = 256m
      packSizeLimit = 180m
      windowMemory = 128m
      packedGitLimit = 1000m
      packedGitWindowSize = 1000m
      (当然你也可以配置LFS-Gitblit是支持lfs功能的)
    2. 打开服务后,进入https://localhost:9119(用自己配置的端口)观察效果

       $ java -jar gitblit.jar --baseFolder data
       $ ./gitblit.sh
      
    3. 如果第二步收到Safari阻拦只需要选择信任证书即可

    到这里我们自己的git控制中心就OK了但如果仔细看了运行java -jar gitblit.jar --baseFolder data时会有相关的证书等ssl设置。但是默认设置你放心吗?
    接下来继续了解有关ssl的设置

    <h2 id="2">SSL配置<h2>

    1. 安装data/certs/caKeyStore.p12根证书然后执行

       #打开证书配置GUI
       $ java -cp gitblit.jar com.gitblit.authority.Launcher --baseFolder data
      

    or

        $ ./authority.sh
    
    GUI.png
    1. 点击红色按钮新建https服务端证书(自己创建的主机名默认为localhost,局域网下其他电脑是无法访问的,这是由于证书验证主机名hostname无法通过localhost匹配对应域名的原因),此时主机名改为你电脑的ip,或一个公网ip、域名达到外界可以访问
    newServerCer.png
    1. 重新打开服务后,进入https://192.168.x.xxx:9119(用自己配置的端口)观察效果

       $ java -jar gitblit.jar --baseFolder data
      
    2. 选择用户创建对应的客户端证书

    clientCer.png

    配置SSHKey实现免密码克隆

    1. 查看git 用户基本配置(用户名,邮箱)

        git config --lis  
      
    2. 若1中没有显示全局用户名与邮箱则需要手动设置

       git config --global user.name "username"  
       git config --global user.email "mail@gmail.com" 
      
    3. 创建sshKey文件(要不要评论/备注都没关系)

       #带评论创建
       ssh-keygen -t rsa -C "mail@gmail.com"  
       #不带评论创建
       ssh-keygen -t rsa 
      

    输入命令后依次会有三次交互:

    • 生成文件的名字---必须为空
    • 生成文件的密码---为空
    • 确认密码--为空
      /Users/lqx/.ssh/id_rsa
    sshkey.png
    前往/Users/lqx/.ssh/id_rsa该目录下的*.pub(公钥)文件,复制全部内容到gitbli用户中心的SSHKey下保存,OK,以后你就可以通过
    git clone ssh@admin/Path/*.git
    

    免密clone了。。

    基于Tomcat Gitblit.war快捷配置

    由于我有一个tomcat所以采用的这种方式,在manangerAPP中配置war文件就OK了,其他配置都一样(SSL部分不需要,取决于tomcat配置)

    ps:这里不做赘述可以,有需求可以联系我。

    相关文章

      网友评论

        本文标题: GitBlit 搭建自己git版本控制中心

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