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

本文主要是介绍自动化构建平台(一)Linux下搭建私有代码仓库Gitblit的安装和使用详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、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 = adminrole = "#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.git95acef6..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和内存占用都很少。对于小公司来说,人员很少的情况下还是很实用,只是功能确实不是很多,而且有些地方操作起来还是不方便。

这篇关于自动化构建平台(一)Linux下搭建私有代码仓库Gitblit的安装和使用详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762485

相关文章

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化