前言
如果公司或个人想在 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.1 在 gitblit-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安装使用详细教程》