自动化构建平台(一)Linux下搭建私有代码仓库Gitblit的安装和使用详解

news2024/10/6 14:30:14

文章目录

  • 前言
  • 一、Gitblit的安装和使用
    • 1、本地安装
    • 2、docker下安装
    • 3、Gitblit使用简介
    • 4、Gitblit仓库权限控制
    • 5、Gitblit邮件配置
  • 总结


前言

代码版本管理,git模式应该是目前最流行的代码管理软件。目前支持git的管理软件有很多。
Gitblit是一个小型的代码仓库管理软件,功能不是很多,优点是:小巧、CPU和内存占用比较少,对于小团队来说基本够用。Gitblit官网点击这里。


一、Gitblit的安装和使用

1、本地安装

进入官网,如下图,根据对应的系统选择合适的版本:
在这里插入图片描述
这里我们下载Linux下的最新版本:gitblit-1.9.3.tar.gz
解压:

tar -xzvf gitblit-1.9.3.tar.gz

进入目录查看文件信息:

mv gitblit-1.9.3 /opt/gitblit
cd /opt/gitblit
ls -alh

在这里插入图片描述

这里的一堆sh文件包含了启动、停止、安装服务等的操作,配置文件在data/defaults.properties里面,我们主要关心这几个配置:

  • server.contextPath
    访问的根路径,可以不做修改,默认为/
  • server.httpPort
    服务启动的端口,这里我们修改为:server.httpPort = 8083
  • server.shutdownPort
    服务关闭端口,默认是8081,有需要的可以修改,因为8081比较常用
  • server.redirectToHttpsPort
    是否强制跳转HTTPS,默认false

其他的配置大家可以自行查看说明进行配置。

另外gitblit需要在Java8上运行,如果电脑上装了多个jdk版本,我们可以修改gitblit.sh中的内容如下:

#!/bin/bash
#java -cp "gitblit.jar:ext/*" com.gitblit.GitBlitServer --baseFolder data

/usr/java/jdk1.8.0_77/bin/java -cp "gitblit.jar:ext/*" com.gitblit.GitBlitServer --baseFolder data

将Java版本执行JDK8的目录,如果你的电脑本身就是jdk8可以不用修改

启动项目:

sh gitblit.sh

如果没什么错误,表示启动成功。

注意:

  1. 这里是前台启动,当我们关闭远程连接时,就会挂掉,Gitblit提供安装服务的脚本,我们将系统安装为系统脚本。根据自己的系统运行install-service-*.sh的文件即可。

  2. Gitblit默认的安装路径是/opt/gitblit,在install-service-*.sh的文件里面也是使用绝对路径,如果你不是安装在/opt下面,将install文件的绝对路径改成你实际的路径

  3. 安装成功后,就可以使系统服务的命令来管理Gitblit了

比如我使用的是install-service-centos.sh,然后在系统里执行:

service gitblit status
Usage: /etc/init.d/gitblit {start|stop|restart|force-reload}

可以看出只支持:start|stop|restart|force-reload这几条指令,到此本地安装结束。

2、docker下安装

这里有一个坑,如果通过官方提供的docker镜像来安装,会有各种问题,通过搜索找到了其他的一些镜像没有问题。这里我们使用jacekkow/gitblit镜像,数据目录挂载到/usr/local/gitblit下面

docker run -d --name=gitblit \
-p 8083:8080 \
-p 8443:8443 \
-p 9418:9418 \
-p 29418:29418 \
-v /usr/local/gitblit:/opt/gitblit-data \
jacekkow/gitblit

然后我们访问:http://ip:8083如果正常,表示启动成功

3、Gitblit使用简介

安装成功后,我们访问http://ip:8083,界面如下所示:
在这里插入图片描述
默认用户名和密码,在【gitblit/data/users.conf】里面,我们查看文件

cat users.conf

如下所示:

[user "admin"]
        password = admin
        role = "#admin"
        role = "#notfederated"

默认用户和密码都是admin/admin

登录成功后,下面我们创建一个仓库来演示如何使用
在这里插入图片描述
点击创建版本库
在这里插入图片描述
点击创建
在这里插入图片描述

然后点击仓库可查看详情

在这里插入图片描述
在这里可以查看仓库的链接地址,一般我们直接使用http协议,这里有个不友好的地方就是,快捷复制插件使用的是flash,但是目前大部分浏览器都禁用了flash,所以只能手动选择来复制了。

注意这里前面的admin是管理员,如果是发送给其他用户的,需要使用其他用户,比如有个test用户,那么clone地址应该是:

git clone http://test@192.168.101.170:8083/r/test.git

我们使用admin用户运行以下命令clone仓库:

git clone http://admin@192.168.101.170:8083/r/test.git

运行结果:

Cloning into 'test'...
remote: Counting objects: 4, done
remote: Finding sources: 100% (4/4)
remote: Getting sizes: 100% (3/3)
remote: Compressing objects: 100% (207/207)
remote: Total 4 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.

下面我们使用git命令来操作测试一下仓库提交

  1. 查看当前仓库的分支情况:
git branch 

结果:

* master
  1. 切换到master
git checkout master

结果:

Already on 'master'
Your branch is up to date with 'origin/master'.
  1. 添加文件,我们先在目录下新建一个文件d.java,内容随便,然后添加到git
git add d.java
  1. 提交到本地
git commit -m "测试"

结果:

[master 6dcb4d7] 测试
 1 file changed, 1 insertion(+)
 create mode 100644 d.java
  1. 推送到远程仓库
git push

要求输入admin的密码,输入密码后提交成功

结果:

Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 306 bytes | 306.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To http://192.168.101.170:8083/r/test.git
   95acef6..6dcb4d7  master -> master

然后我们到管理后台查看提交记录:
在这里插入图片描述
文件以及提交成功。

4、Gitblit仓库权限控制

如果要限制仓库访问,可以根据这里的功能来创建用户或者团队等操作:
在这里插入图片描述
创建用户:

在这里插入图片描述
这里的用户管理逻辑很简单,团队和用户属于归属关系

给项目分配用户:
在这里插入图片描述
点击编辑:
在这里插入图片描述
通过这里来管理用户

5、Gitblit邮件配置

如果我们要在Gitblit中使用邮件,我们可以使用自己搭建的邮件服务来使用,如果想了解怎么搭建自己的私有邮件服务,可以参照我的文章:【Linux centos7下使用postfix/dovecot搭建自己的SMTP邮件服务器】,
在data/defaults.properties下进行配置:


# ip or hostname of smtp server
#
# SINCE 0.6.0
mail.server = mail.code-long.com

# port to use for smtp requests
#
# SINCE 0.6.0
mail.port = 25

# debug the mail executor
#
# SINCE 0.6.0
mail.debug = true

# use SMTPs flag
mail.smtps = false

# use STARTTLS flag
#
# SINCE 1.6.0
mail.starttls = false

# if your smtp server requires authentication, supply the credentials here
#
# SINCE 0.6.0
mail.username =mail_admin
# SINCE 0.6.0
mail.password =AMXtRByuFNn4

# from address for generated emails
#
# SINCE 0.6.0
mail.fromAddress = mail_admin@code-long.com

# List of email addresses for the Gitblit administrators
#
# SPACE-DELIMITED
# SINCE 0.6.0
mail.adminAddresses = 123@qq.com

# List of email addresses for sending push email notifications.
#
# This key currently requires use of the sendemail.groovy hook script.
# If you set sendemail.groovy in *groovy.postReceiveScripts* then email
# notifications for all repositories (regardless of access restrictions!)
# will be sent to these addresses.
#
# SPACE-DELIMITED
# SINCE 0.8.0
mail.mailingLists = 234@qq.com

其中
mail.adminAddresses是管理员的邮件地址
mail.mailingLists 可以配置其他的邮件地址,用来接受邮件

配置完后,我们还需要配置仓库的hook

在这里插入图片描述

根据自身的情况来配置,这样我们在push的时候,就会收到邮件通知。

总结

Gitblit运行时对服务器性能要求不是很高,CPU和内存占用都很少。对于小公司来说,人员很少的情况下还是很实用,只是功能确实不是很多,而且有些地方操作起来还是不方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为自动驾驶技术详解报告分享

ADS2.0首发搭载问界M5智驾版,城市NCA计划年底全国开通。2023年4月16日华为在智能汽车解决方案发布会上发布了最新的ADS2.0产品,硬件数量减少至27个(11个摄像头12个超声波雷达3个毫米波雷达1个激光雷达,ADS1.0有34个),车载计算平台改为MDC610&…

手把手教你魔改YOLOv9!

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、本文介绍 本文将一步步演示如何在YOLOv9中添加 / 替换新模块,寻找模型上的创新! 适用检测目标: YOLOv9模块…

供水管网水力模型的建立与应用

阐述管网水力模型构建流程,建立供水管网水力模型。通过数据录入生成管网基本拓扑结构及物理信息,在模型简化之后利用监测数据进行模型校核,保障管网模型满足精度要求。利用管网模型进行管网工况分析,掌握管网内压力分布与管道流速分布状态,提出管网运行薄弱环节。 给…

Docker容器(3)单容器管理

一、单容器 1.1概念简介 Docker三个重要概念: 仓库(Repository); 镜像(Image); 容器(Container). *Docker的三个重要概念是仓库(Repository)、镜像(Image)和容器(Container)**。具体如下: **镜像(Image)**:Docker镜像是创建容器的基础,它类似…

ToDesk - macOS 上轻便好用的远程控制

文章目录 官网 https://www.todesk.com个人版(免费)下载地址: https://www.todesk.com/download.html 支持系统类型 Windows、macOS、Android、iOS、Linux 应用大小为 320MB 左右 使用界面

具身智能计算系统,机器人时代的 Android | 新程序员

【导读】具身智能作为一种新兴的研究视角和方法论,正在刷新我们对智能本质及其发展的理解:传统的 AI 模型往往将智能视为一种独立于实体存在的抽象能力,而具身智能则主张智能是实体与其环境持续互动的结果。 本文深度剖析了具身智能计算系统…

Python进阶学习:Pandas--DataFrame--如何把几列数据合并成新的一列

Python进阶学习:Pandas–DataFrame–如何把几列数据合并成新的一列 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

回溯是怎么回事(算法村第十八关青铜挑战)

组合 77. 组合 - 力扣(LeetCode) 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],…

SpringCloud Alibaba(保姆级入门及操作)

第一章 微服务概念 1.0 科普一些术语 科普一下项目开发过程中常出现的术语,方便后续内容的理解。 **服务器:**分软件与硬件,软件:类型tomcat这种跑项目的程序, 硬件:用来部署项目的电脑(一般性能比个人电脑好) **服务:**操作系统上术语:一个程序,开发中术语:一个…

基于PyTorch深度学习实战入门系列-(1)环境配置

Pytorch环境安装配置2024最新版 下载安装Anaconda Anaconda下载网址:Free Download | Anaconda 创建虚拟环境 打开Anaconda Prompt # conda create -n 环境名 [需要的库] # 例子: conda create -n pytorchpy39 python3.9安装过程中需要确认输入 y 回车…

如何使用Potplayer远程访问本地群晖NAS搭建的WebDAV中的本地资源

文章目录 本教程解决的问题是:按照本教程方法操作后,达到的效果是:1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透,映射至公网4 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内…

mysql数据库学习笔记2——linux系统下安装,对库,表的基本操作语句

关于在linux系统下安装可以查看linux 安装mysql服务(超详细)_cannot write to-CSDN博客相关教程 对库的一些操作有 show databases查看有哪些数据库,create database “新建数据库名称” 创建新的数据库,use “数据库名称”切换…

透明加密软件的三种技术点介绍

常见的透明加密软件一般以透明加密技术为核心技术。透明加密主要有两种技术支撑,一种是核心层(也称为驱动层)的透明加密技术,另一种是应用层的透明加密技术。由于应用层存在着适应性和稳定性差等缺陷,与驱动层相比在安…

轻松爬取跨境电商商品数据集|电商跨境电商必备技术电商商品数据采集|数据采集API接口

跨境电商商品数据采集爬取方案 在之前写过一篇关于网页爬取的文章,使用的是亮数据这个工具,并且带领大家进行了注册,介绍了一些相关的功能。现在我们来探索一下如何爬取某大型电商商品数据集 很多电商科技企业,致力于通过各种高…

Windows环境下的调试器探究——硬件断点

与软件断点与内存断点不同,硬件断点不依赖被调试程序,而是依赖于CPU中的调试寄存器。 调试寄存器有7个,分别为Dr0~Dr7。 用户最多能够设置4个硬件断点,这是由于只有Dr0~Dr3用于存储线性地址。 其中,Dr4和Dr5是保留的…

【C++从0到王者】第四十七站:最小生成树

文章目录 一、最小生成树的概念1.概念2.最小生成树的构造方法 二、Kruskal算法1.算法思想2.代码实现 三、Prim算法1.算法思想2.代码实现3.试试所有节点为起始点 一、最小生成树的概念 1.概念 连通图:在无向图中,若从顶点v1到顶点v2有路径,则…

改进YOLO系列 | YOLOv5/v7 引入通用高效层聚合网络 GELAN | YOLOv9 新模块

今天的深度学习方法专注于如何设计最合适的目标函数,以使模型的预测结果最接近真实情况。同时,必须设计一个合适的架构,以便为预测提供足够的信息。现有方法忽视了一个事实,即当输入数据经过逐层特征提取和空间转换时,会丢失大量信息。本文将深入探讨数据通过深度网络传输…

性能测试-反编译jar

方法一,使用jd-gui 1、官网下载:Java Decompiler 2、下载mac版本后,解压,如下所示: 双击 JD_GUI,提示错误,如下所示: 已经安装了java 17,是java 1.8以上版本&#xff0…

十二、Qt自定义Widget组件、静态库与动态库

一、自定义Widget组件 1、自定义Widget组件 使用步骤采用提升法(promotion)重新定义paintEvent事件 2、实现程序 (1)创建项目,基于QWidget (2)添加类,为Widget组件提升类 #inclu…

通过jenkins进行部署java程序到centos上

1.通过jumpserver访问到centos上,准备下java环境 // step1: 先编辑下 vim /etc/profile// step2: 编写好环境变量 JAVA_HOME/usr/local/java export JAVA_HOME export ZOOKEEPER_HOME/opt/zookeeper/apache-zookeeper-3.7.0-bin PATH$PATH:$JAVA_HOME/bin:$ZOOKEEP…