【GitBlit】Windows搭建Git服务器详细教程

前言

如果公司或个人想在 Windows 环境下搭建私有的 Git 服务器,那么这个开源的 GitBlit 是一个不错的选择。 

  • Gitblit 是一个开源纯 Java 的用于管理、查看和服务 Git 存储库。它是一个小型的托管集中式存储库工具。
  • 支持 SSH、HTTP 和 GIT 协议,开箱即用。
  • Gitblit 融合了 GitHub、BitBucket 和 Gerrit 的元素,以提供基于主存储库中分支的简化协作工作流。 
  • 管理员可以从 Web UI 创建和管理所有存储库、用户帐户和团队。

一、安装 Java JDK 

GitBlit 是纯 Java 开发的,因此须确保电脑已安装了 Java 运行时环境 JRE 或者 JDK (要求版本 >= 1.7) 。

1.1 下载 Java 

官网下载地址: Download Java for Windows

1.2 安装 Java 

软件下载后直接双击运行:  

*注:大家根据自己的习惯选择安装路径(我默认安装在C盘)! 

1.3 配置 Java 环境变量 

打开环境变量配置:

右键 "此电脑(计算机)" => "属性" => "高级系统设置" => "高级" => "环境变量" => "系统变量"。 

新建:
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.6.0_21【根据自己实际的安装路径填写】 

新建:
变量名:CLASSPATH
变量值:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar

添加:
编辑 PATH 变量,在最后一行添加: %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

  

1.4 验证 Java 是否安装成功 

  • 打开命令窗口(win + r)=> 输入 cmd
  • 在命令窗口中,输入 java 命令并回车:java -version,有版本信息,说明安装成功。

二、安装 GitBlit 

2.1 下载 GitBlit 安装包 

官网下载地址:Download GitBlit

  

下载最新的安装包版本 gitblit-1.9.3.zip

2.2  创建 GitBlit 配置目录

2.2.1 在 D 盘创建一个 Git 配置目录【大家根据自己的习惯选择配置盘

2.2.2 在刚才创建的 Git 目录下新建一个存储资料文件夹:GitRepository

2.2.3 将【2.1】下载的 GitBit 安装包,也解压到 D:\Git 目录下【如上图所示】

2.3  配置 GitBlit 

以下所有操作均在 D:\Git\gitblit-1.9.3 安装包目录下完成。

2.3.1 配置 defaults.properties 文件 

打开 data/defaults.properties 文件,按照如下操作流程配置。

2.3.1.1 找到 git.repositoriesFolder,赋值为【2.2】的存储资料库路径

 

*注意: 这里的 D:/Git/GitRepository  中的 "\" 一定要用 "/" 

2.3.1.2 找到 server.httpPort,设定服务器的 http 协议端口号(不使用 https 可直接注释掉)   

  • 通过 netstat -ano 可以查看哪些端口已被占用,然后填写一个未被占用的端口作为  http 端口即可;
  • 一般来说,端口号的范围是 [0,  65535],其中 [0,  1023] 是被系统保留的一些知名端口,而 [1024,  65535] 是动态或私有端口;
  • HTTP 协议的标准端口是 80,而 [1024,  65535]  可作为 HTTP 的非标准端口。

2.3.1.3 找到 server.httpBindInterface,设定服务器的 IP 地址(Windows本地 IP 地址)

2.3.1.4  找到 server.httpsBindInterface,设定为 localhost

最后,记得保存修改的文件内容!!!

2.3.2 运行 gitblit.cmd 批处理文件

2.3.2.1 在 gitblit-1.9.3 目录下找到 gitblit.cmd 文件,双击运行 

 

2.3.2.2 打开浏览器,输入服务器地址与端口登录,就可以开始使用 GitBlit 了

2.3.3 设置 Windows Service 启动 GitBlit  

如果你不希望每次开机后都要手动双击运行 gitblit.cmd 文件才能访问服务器,那么设置以 Windows Service 方式启动 GitBlit 就非常有必要了。

2.3.3.1gitblit-1.9.3 目录下,找到并打开 installService.cmd 文件,修改内容如下

1. 修改 ARCH:
32位系统:SET ARCH=x86
64位系统:SET ARCH=amd642. 添加 CD 为 GitBlit 安装包路径:
SET CD=SET CD=D:\Git\gitblit-1.9.3 (大家根据自己实际目录路径填写)3. 修改 StartParams 里的启动参数,赋值为空即可:
--StartParams="" ^

2.3.4 以 Windows Service 方式启动 GitBlit 

2.3.4.1 右键 => 以管理员身份运行,GitBlit 目录下的 installService.cmd 文件

2.3.4.2 (win+r => 输入services.msc)打开服务(本地),会发现 gitblit 服务已经存在了

2.3.4.3 此时如果 gitblit.cmd 文件也已经关闭了(并且不重启电脑),在网页访问 GitBlit 服务器会发现被拒绝,原因是服务(本地)存在的 gitblit 服务还没正式启动,需要手动设置一下

*注:刷新网页,服务器访问成功!

三、使用 GitBlit 服务器管理用户与项目

1. 首次访问 GitBlit 服务器,默认管理员的用户名和密码都是 admin,出于安全考虑可更改登录密码。

2. 一般来说,管理员都是管理用户和项目的,基本不作为 Git 项目的实际操作者(如,拉取、推送代码等)。

3. (admin)管理员的作用:创建新用户或团队,创建新项目或项目分支,编辑项目用户或团队权限,删除项目版本库等。

3.1 创建新的版本库 

以创建一个 test.git 版本库为例,操作流程如下。

  • 先点击图中的 "1.版本库",然后再点击 "2.创建版本库"

  • 填写项目名称和描述(注意:名称最后要加 .git,如果不加服务器会默认添加)
  • 选择限制查看、克隆和推送
  • 勾选 "加入README" 和 "加入.gitignore文件"
  • 然后选择构建版本库需要忽略的文件,如 VisualStudio
  • 最后,点击 "创建"

  • 创建成功后,进入对应的新版本库,显示如下 

  • 点击 "目录",可以看到版本库的初始文件 

3.2 用户管理  

3.2.1 以管理员身份登录服务器

  • 在网址输入框输入 GitBlit 服务器的地址和端口号,然后以(admin)管理员身份登录

3.2.2 创建新用户

以创建一个 test 用户为例,操作流程如下:

  • 点击图中红色框中的 "用户"

  • 点击 "添加用户" 

  • 填写用户的信息,红色框中的选项视情况勾选(可使用默认配置)
  • 点击保存

  • 添加成功后,会在列表中显示对应的用户信息 

  • (注销admin) 以新用户身份登录服务器,可以看到页面是没有任何版本库信息的,这是因为当前新用户还没有任何版本库的权限

3.2.3 授予用户版本库的读写权限 

  • 切换到管理员账号,并进入想要授权的版本库
  • 点击 "编辑"

  • 再点击"权限(permissions)",选择你想要授权的用户与权限
  • 比如,用户选择 test,权限选择 "RW(推送)"
  • 最后点击 "添加" (添加成功后,点击 "保存")

  • 此时,切换到相应已授权的用户 (例如 test 用户),可以看到他的页面已有版本库的信息

四、安装配置本地 Git 客户端工具 

4.1 下载 Git 客户端工具 

官网下载地址:Download Git 

4.2  安装 Git 客户端工具

一路默认安装即可(如果安装在非C盘,则需要自定义安装路径),如下

4.3 将 SSH 公钥配置到 GitBlit 服务器 

  • 查看 SSH 公钥的方法:在任意文件夹下点击右键,选择 Git GUI here。弹出的界面如下

  • 点击主菜单的【Help】→【Show SSH Key】 

*注:如果电脑还没有 SSH 密钥,此时显示的内容是空白的,需要生成一对 SSH 密钥(其中密码可以为空,根据自己实际需要是否填写)!

  • 点击 "Copy To Clibboard",把 SSH 的公钥粘贴 GitBlit 服务器对应用户的后台配置中 

4.4 通过 Git 客户端拉取 GitBlit 服务器版本库代码

  • 使用新创建的用户名和密码登录 GitBlit 服务器
  • 复制红色框中的版本库URL

  • 本地创建一个 Test 目录并进入,右键选择 "Git Bash here"
  • 此时通过 Git 客户端拉取代码,提示错误(没有权限)
$ git clone ssh://test@172.168.3.126:29418/test.git 20:23 Update failed
Unable to negotiate with 172.168.3.126 port 29418: no matching host key type found. Their offer: ssh-rsa
Could not read from remote repository.
  • 解决方法:进入 C 盘用户(账户)下的 .ssh 目录创建一个 config 文件,内容如下
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

  • 重新通过 Git 客户端拉取 GitBlit 服务器版本库代码,成功!!! 
git clone ssh://test@172.168.3.126:29418/test.git 

 

五、TortoiseGit 安装使用教程

  • TortoiseGit 是基于 TortoiseSVN 的 Git 版本的 Windows Shell 界面。它是开源的,可以完全使用免费软件构建。
  • TortoiseGit 支持你执行常规任务,例如 commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。
  • 如果你希望使用带有 UI 操作界面的 Git 客户端工具,而不是 Shell 命令行的方式,那么  TortoiseGit (小乌龟) 就非常适合你。详细教程请查阅《TortoiseGit安装使用详细教程》

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

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

相关文章

Java+springboot开发的医院智能导诊服务系统源码 自动兼容小程序与H5版本

智能导诊系统 一、什么是智慧导诊系统? 智慧导诊系统是一种医院使用的引导患者自助就诊挂号、精准推荐科室、引导患者挂号就诊的系统。该系统结合医院挂号及就诊的HIS系统,为患者带来全流程的信息指引提醒,可以在全院区构建一个精细化、移动…

IP-guard getdatarecord 存在任意文件读取

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、产品介绍 IP-guard是由溢信科技股份有限公司开发的一款终端安全管…

x-cmd ai | x openai - 用于发送 openai API 请求,以及与 ChatGPT 对话

介绍 Openai 模块是 Openai 大模型 Chatgpt 3 和 ChatGPT 4 命令行实现。x-cmd 提供了多个不同平台间多种 AI 大模型的调用能力。无论是本地模型还是 Web 服务上的模型,用户都可以在不同的 AI 大模型间直接无缝切换,并能把之前的聊天记录发送给新的大模…

CSS3 伪元素与伪类选择器区别、详解与应用实例

伪元素与伪类两者都是通过在选择器后附加一个特定的关键字来定义,遵循相似的语法规则,并在 CSS 规则块中设置相应的样式。伪元素 能够通过 content 属性添加或替换内容。例如,:before 和 :after 可以插入文本、图像或其他生成的内容。伪类 仅…

Tomcat核心组件深度解析

Server组件 Service组件 连接器Connector组件 容器Container组件

【研发管理】产品经理知识体系-产品创新管理

导读: 产品创新管理对企业的发展具有深远的影响,它不仅是企业保持竞争优势的关键,也是推动企业持续稳定发展的重要动力。因此,企业应高度重视产品创新管理,并采取有效的策略和方法来推动产品创新活动的开展。对于产品经…

第20天:信息打点-红蓝队自动化项目资产侦察企查产权武器库部署网络空间

第二十天 一、工具项目-红蓝队&自动化部署 自动化-武器库部署-F8x 项目地址:https://github.com/ffffffff0x/f8x 介绍:一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等.下载:wget -O f8x https://f8x.io…

MINIO安装的方法(WindowsLiunx)

2 minio安装教程 注:官方中文文档:MinIO对象存储 Windows — MinIO中文文档 | MinIO Windows中文文档 Liunx 安装方:MinIO对象存储 Linux — MinIO中文文档 | MinIO Linux中文文档 2.1 下载地址 https://dl.min.io/server/minio/…

论文笔记:UrbanGPT: Spatio-Temporal Large Language Models

1 intro 时空预测的目标是预测并洞察城市环境随时间和空间不断变化的动态。其目的是预见城市生活多个方面的未来模式、趋势和事件,包括交通、人口流动和犯罪率。虽然已有许多努力致力于开发神经网络技术,以准确预测时空数据,但重要的是要注意…

springboot是什么?

可以应用于Web相关的应用开发。 选择合适的框架,去开发相关的功能,会有更高的效率。 为什么Spring Boot才是你该学的!学java找工作必会技能!在职程序员带你梳理JavaEE框架_哔哩哔哩_bilibili java工程师的必备技能 Spring是Java EE领域的企业级开发宽…

万兆网络的十字路口:电口还是光模块?

🌵在构建高速、高效的网络系统时,选择正确的连接技术至关重要。万兆电口(10GBASE-T)和万兆光模块(SFP)是目前市场上两种主流的高速网络解决方案。它们各有优势,但在不同的应用场景和需求下&…

稀碎从零算法笔记Day54-LeetCode:39. 组合总和

题型:数组、树、DFS、回溯 链接:39. 组合总和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数…

在PostgreSQL中如何进行全文搜索,以及如何优化全文搜索性能?

文章目录 如何进行全文搜索1. 创建全文搜索向量2. 执行全文搜索查询 如何优化全文搜索性能1. 使用GIN索引2. 限制搜索范围3. 优化文本处理4. 使用并发搜索5. 监控和调整配置 在PostgreSQL中,全文搜索通常通过使用tsvector和tsquery类型,以及to_tsvector和…

安居水站:水站经营秘籍:年入30万不是梦。水站创业指南。

在这个快节奏的社会里,初创企业家们总是在寻找一条明路,以在竞争激烈的市场中立足。为了帮助他们更好地实现这一目标,我根据经验决定制定一份水站经营指导手册。这份手册将详细阐述如何从零起步,如何运营,如何进行市场…

制作一个RISC-V的操作系统十二-定时器中断

文章目录 CLINT定时器中断mtimemtimecmp机制总体框架流程时间节拍系统时钟代码 CLINT 产生软件中断和定时器中断 定时器中断 mtime 类似计数器,按照硬件对应的固定频率递增 上电后会自动复位为0,有硬件自动完成 mtimecmp 需要自己设置&#xff0…

Java 多线程加法求和

Java 多线程加法求和 代码 先上代码再上解析: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger;public class Sum implements …

文件IO总结

标准C库IO函数和Linux系统IO函数对比 标准c库IO函数 标准C库提供了一系列的输入输出&#xff08;IO&#xff09;函数&#xff0c;这些函数主要包括在 <stdio.h> 头文件中。这些函数可以大致分为几类&#xff1a; 文件操作函数&#xff1a; fopen&#xff1a;打开文件fc…

Linux内核之内核通知文件系统创建的路径:fsnotify_create用法实例(五十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【图解计算机网络】从浏览器地址输入到网页显示的整个过程

从浏览器地址输入到网页显示的整个过程 整体流程DHCPhttp协议报文组装DNSTCP协议封装与TCP三次握手IP协议封装与路由表MAC地址与ARP协议交换机路由器 整体流程 从往浏览器输入一个地址到网页的显示&#xff0c;要经过很长的一个流程&#xff0c;中间涉及到计算机网络的许多知识…

*Linux系统的进程和计划任务管理

目录 一、查看进程 1、程序和进程的关系 *2、ps查看静态进程信息 1&#xff09;ps aux 2&#xff09;ps -elf *3、top查看动态进程信息 4、pgrep查看进程信息 5、pstree查看进程树 二、控制进程 1、进程启动方式 2、进程的前后台调度 3、终止进程的运行 三、计划任…