1. 为什么选择GitBlit搭建私有Git服务在团队开发中版本控制是必不可少的环节。对于中小团队或个人开发者来说GitHub、GitLab等公有云服务虽然方便但存在代码隐私性、网络延迟等问题。GitBlit作为轻量级的Git服务器解决方案特别适合Windows环境下的私有化部署。我曾在多个项目中使用GitBlit搭建内部代码托管平台实测下来它的优势非常明显首先是安装配置简单一个Java环境加上解压包就能运行其次是资源占用低在2核4G的服务器上就能流畅支持20人团队的协作开发最重要的是它的Web管理界面非常直观权限管理、仓库创建等操作都能通过点击完成。与GitLab相比GitBlit最大的特点就是轻量化。GitLab功能强大但需要安装Ruby、PostgreSQL等一堆依赖而GitBlit只需要Java环境就能运行。对于不需要CI/CD等复杂功能的中小团队GitBlit完全够用。记得去年帮一个创业团队部署时从零开始到正常使用只花了不到1小时。2. 环境准备与Java安装2.1 Java环境配置详解GitBlit是基于Java开发的所以第一步需要安装JDK。这里有个坑需要注意虽然官方说支持Java 1.7但我实测发现最好使用Java 8或11这些LTS版本。最新版的Java 17可能会有兼容性问题。下载JDK时建议直接从Oracle官网获取安装包。安装过程很简单但环境变量配置经常让新手头疼。这里分享我的标准配置流程新建JAVA_HOME变量值为JDK安装路径如C:\Program Files\Java\jdk1.8.0_281新建CLASSPATH变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar在Path变量中添加%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin配置完成后打开cmd运行java -version验证。如果看到版本信息说明配置成功如果报错通常是路径填写错误。有个小技巧在资源管理器地址栏输入%JAVA_HOME%可以快速检查变量是否生效。2.2 GitBlit安装包准备从GitBlit官网下载最新稳定版的zip包即可不需要安装版。我习惯在D盘创建GitServer目录里面再建两个子目录GitBlit存放解压后的程序文件Repositories作为代码仓库的根目录这种目录结构清晰明了后期维护也方便。解压时要注意有些解压软件会多套一层文件夹确保最终路径是D:\GitServer\GitBlit\gitblit-1.9.3这样的形式。3. GitBlit服务配置实战3.1 核心配置文件详解解压后进入data目录找到defaults.properties文件这是GitBlit的主配置文件。以下几个参数必须修改git.repositoriesFolder D:/GitServer/Repositories server.httpPort 8080 server.httpBindInterface 0.0.0.0特别注意路径中的斜杠要用正斜杠/。httpBindInterface设置为0.0.0.0可以让局域网其他机器访问。如果端口冲突可以用netstat -ano命令查看可用端口。3.2 服务启动与测试直接运行gitblit.cmd启动服务首次启动可能会有点慢。启动成功后在浏览器访问http://localhost:8080就能看到管理界面。默认管理员账号密码都是admin首次登录一定要修改密码。这里有个实用技巧如果想在局域网其他机器访问需要确保Windows防火墙放行了对应端口。可以在防火墙高级设置中添加入站规则允许TCP端口8080。3.3 设置为Windows服务要让GitBlit开机自启需要将其注册为Windows服务。修改installService.cmd文件SET ARCHamd64 SET CDD:\GitServer\GitBlit\gitblit-1.9.3然后以管理员身份运行这个脚本。完成后在服务管理器中就能看到GitBlit服务了。建议将启动类型设为自动这样服务器重启后Git服务会自动恢复。4. 团队协作与权限管理4.1 用户与团队创建登录管理后台后在用户页面可以创建新用户。建议为每个开发人员创建独立账号而不是共享管理员账号。创建团队时可以按项目或部门划分比如frontend-team、backend-team等。权限管理是GitBlit的强项。它支持以下几种权限级别R只读RW读写RWC读写创建分支RW读写删除分支RWD读写删除文件4.2 仓库创建与权限分配创建新仓库时名称必须以.git结尾。建议勾选加入README选项这样仓库初始化时会有个基础文件避免空仓库的问题。权限分配有两种方式针对单个用户授权通过团队批量授权对于长期项目建议使用团队授权方式。比如把前端开发人员都加入frontend-team然后给这个团队分配项目权限。这样人员变动时只需要调整团队成员不需要逐个修改项目权限。5. 客户端连接与使用5.1 Git客户端配置团队成员需要安装Git客户端推荐使用最新版的Git for Windows。安装时记得勾选Git Bash Here和Git GUI Here选项这两个功能在后续操作中很有用。配置用户名和邮箱很重要这是提交记录中的身份标识git config --global user.name Your Name git config --global user.email your.emailexample.com5.2 SSH密钥配置安全起见建议使用SSH协议连接GitBlit服务器。每个用户需要生成自己的SSH密钥对ssh-keygen -t rsa -b 4096 -C your.emailexample.com生成后将公钥(~/.ssh/id_rsa.pub)内容复制到GitBlit用户设置的SSH Keys中。如果遇到连接问题可能需要修改SSH配置Host your.gitblit.server HostkeyAlgorithms ssh-rsa PubkeyAcceptedKeyTypes ssh-rsa5.3 TortoiseGit图形化操作对于不熟悉命令行的成员可以安装TortoiseGit。安装后右键菜单会新增Git相关功能大部分操作都可以通过图形界面完成。克隆仓库时输入SSH格式的地址ssh://gityourserver:29418/project.git首次连接时需要接受服务器指纹之后的操作就和常规Git工作流一样了。TortoiseGit还提供了直观的日志查看、差异比较等功能特别适合GUI爱好者。6. 日常维护与问题排查6.1 备份策略代码仓库的备份至关重要。最简单的备份方式是定期复制Repositories目录。更专业的方法是使用GitBlit自带的备份功能java -jar gitblit.jar --backup D:/backups建议设置定时任务每周自动备份一次。备份文件可以同步到云存储或其他服务器。6.2 常见问题解决如果服务无法启动首先检查Java环境是否正常然后查看logs目录下的日志文件。常见问题包括端口冲突修改server.httpPort后重启服务权限不足确保服务账号有仓库目录的读写权限内存不足修改gitblit.cmd中的Xmx参数增加内存对于仓库损坏的情况可以尝试在仓库目录下运行git fsck进行检查。必要时可以从备份恢复。