bonobo git和git

二者不是同类竞品,而是底层核心工具服务端托管管理工具的关系,Bonobo Git 完全依赖 Git 才能运行。下面从本质、区别、作用三方面详细说明:

一、本质定位:完全不同层面的工具

1. Git

Git 是分布式版本控制系统(DVCS) ,是代码版本管理的核心底层引擎,由 Linus Torvalds 开发,开源跨平台。

  • 核心能力是本地代码版本记录、分支管理、合并对比、提交历史追溯。
  • 本身以命令行为主(也有 GUI 客户端),运行在开发者本地电脑,不需要服务器就能独立工作
  • 所有 Git 相关的提交、拉取、合并等核心逻辑,全部由 Git 本身实现,是整个 Git 生态的基础。

2. Bonobo Git Server

Bonobo Git Server 是运行在 Windows IIS 上的轻量级 Git 服务器托管程序 ,基于 ASP.NET 开发的开源 Web 应用。

  • 它本身不实现任何版本控制逻辑,底层完全调用系统安装的 Git 程序
  • 核心价值是:给原生 Git 套上可视化 Web 管理界面,提供远程仓库托管、用户账号管理、细粒度权限控制、HTTP/HTTPS 协议访问能力。
  • 定位是轻量私有版 GitHub,专为 Windows 生态设计,部署简单、资源占用极低。

二、核心区别对比

对比维度 Git Bonobo Git Server
本质定位 分布式版本控制核心工具(客户端 / 底层引擎) Git 远程仓库的 Web 托管管理工具(服务端外壳)
核心作用 代码版本管理、分支合并、历史追溯 搭建私有 Git 服务器、可视化管理仓库与用户权限
运行位置 开发者本地电脑、服务器均可安装 仅部署在 Windows 服务器的 IIS 中
功能范围 版本控制核心能力,无 Web 界面、无用户权限体系 仅提供 Web 管理、仓库托管、权限控制,无版本控制核心逻辑
依赖关系 完全独立,不依赖任何托管工具 必须依赖系统预先安装的 Git 才能正常工作
平台支持 跨平台(Windows、Linux、MacOS) 仅支持 Windows + IIS 环境
使用角色 所有开发人员日常使用 运维 / 管理员部署,团队成员通过它访问远程仓库

三、各自的作用与适用场景

1. Git 的核心作用

Git 是所有 Git 生态的基础,覆盖代码管理全流程:

  • 本地版本管理:在个人电脑上记录代码每次修改,随时回退到任意历史版本,离线也能完整工作。
  • 分支协作开发:创建功能分支、修复分支,多人并行开发互不干扰,完成后合并代码。
  • 远程仓库交互 :通过 clone/pull/push 命令,和任意远程 Git 仓库(GitHub、GitLab、Bonobo 搭建的私有仓库)同步代码。

一句话总结:没有 Git,所有基于 Git 的代码托管服务都无法运行

2. Bonobo Git Server 的核心作用

它解决的是「小团队如何在 Windows 环境下快速搭建私有 Git 远程仓库」的问题:

  • 私有代码托管:在公司内部 Windows 服务器上搭建专属代码托管服务,代码不流出企业内网,满足数据安全与合规要求。
  • 可视化管理:通过浏览器即可创建 / 删除仓库、管理用户账号、分配读写权限,无需手动操作 Git 裸仓库、配置 SSH 密钥。
  • IIS 生态集成:直接部署在已有 IIS 服务器上,支持 Windows 域账号登录、HTTPS 证书绑定,和 Windows 服务器运维体系高度兼容。
  • 轻量低成本:相比 GitLab 等重型 Git 服务器,Bonobo 占用系统资源极低,部署仅需几分钟,最适合 10 人以内的小团队、中小型项目使用。

四、总结

  • Git 是发动机 ,提供版本控制的核心动力;Bonobo Git 是整车,把发动机包装成可直接使用的服务,附带管理界面和权限系统。
  • 开发者日常写代码用的是 Git;Bonobo 是管理员部署在服务器上,给团队提供远程 Git 仓库访问入口的工具。

IIS 部署 Bonobo Git Server 完整步骤

以下是 Windows + IIS 环境下的标准化部署流程,包含环境准备、权限配置、站点部署与常见排坑,全程可按步骤落地。

一、前置环境准备(必须先完成)

Bonobo Git Server 是 ASP.NET Web 应用,底层依赖 Git 执行版本控制,需提前装好所有依赖。

1. 安装 IIS 与 ASP.NET 支持

  1. Win+R 输入 optionalfeatures 回车,打开「Windows 功能」
  2. 展开 Internet Information Services ,必选组件:
    • Web 管理工具 → IIS 管理控制台
    • 万维网服务 → 应用程序开发功能 → 勾选 ASP.NET 4.8对应系统.NET 版本,最低 4.6)
    • 万维网服务 → 常见 HTTP 功能 → 静态内容、默认文档
  3. 确定等待安装完成

2. 安装 .NET Framework 4.6+

  • Win10/11、Windows Server 2016+ 系统自带,无需额外安装

  • 低版本系统需手动下载安装 .NET Framework 4.6 及以上版本

  • 若先装 .NET 后装 IIS,需以管理员身份运行 CMD 执行注册命令:

    %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

3. 安装 Git for Windows

Bonobo 本身不包含 Git 核心,必须在服务器安装 Git:

  1. 下载 Git for Windows 并安装
  2. 安装时必须勾选「Git from the command line and also from 3rd-party software」(将 Git 加入系统 PATH)
  3. 安装完成后 CMD 执行 git --version,能输出版本号即为正常

二、下载并部署程序文件

  1. Bonobo 官网 下载最新版安装包(ZIP 格式)
  2. 解压文件到 IIS 站点目录,推荐路径:
    • 独立站点:D:\wwwroot\BonoboGitServer
    • 挂载默认站点:C:\inetpub\wwwroot\Bonobo.Git.Server

三、配置文件夹权限(核心必做,否则必报错)

Bonobo 需要读写配置与仓库文件,权限是最常见的报错原因。

  1. 右键站点根文件夹 → 属性 → 安全 → 编辑 → 添加
  2. 输入对象名:IIS_IUSRS,检查名称后确定
  3. IIS_IUSRS 赋予 读取 & 执行、列出文件夹、读取 权限
  4. 找到站点内的 App_Data 文件夹 ,重复上述步骤,额外勾选 修改、写入 权限(完全控制也可)
  5. 若后续自定义了仓库存储路径,也需给该目录赋予相同的写入权限

四、IIS 站点配置(两种方案选其一)

方案 A:新建独立网站(推荐,生产环境用)

端口独立、管理隔离,适合长期使用

  1. 打开 IIS 管理器(inetmgr),左侧右键「网站」→ 添加网站
  2. 填写配置:
    • 网站名称:Bonobo Git Server
    • 物理路径:选择你解压的站点根目录(如 D:\wwwroot\BonoboGitServer
    • 端口:自定义(如 8088,避免和 80 端口冲突)
    • 主机名:可填域名,内网使用留空即可
  3. 点击确定创建站点

方案 B:挂载到默认网站(快速测试用)

适合临时体验,无需额外端口

  1. IIS 管理器中展开「默认网站」
  2. 找到 Bonobo.Git.Server 文件夹,右键 → 转换为应用程序
  3. 应用程序池选择 .NET v4.5 或 v4.0 集成模式,确定即可

应用程序池关键配置

无论哪种方案,都需核对应用池设置:

  1. 左侧点击「应用程序池」,找到对应站点的应用池,右键 → 高级设置
  2. 确认参数:
    • .NET CLR 版本:v4.0
    • 托管管道模式:集成
    • 启用 32 位应用程序:False(64 位系统保持默认)
    • 闲置超时:可调整为 0,避免长时间无访问进程被回收

身份验证配置

  1. 选中 Bonobo 站点 / 应用,中间双击「身份验证」
  2. 仅启用 匿名身份验证,禁用 Windows 身份验证、表单身份验证等所有其他项
  3. 说明:Git 的 HTTP 账号密码认证由 Bonobo 程序自身处理,IIS 层面只需放行匿名访问

五、初始化与基础配置

  1. 浏览器访问地址:
    • 独立站点:http://服务器IP:端口
    • 默认站点挂载:http://localhost/Bonobo.Git.Server
  2. 默认管理员账号:用户名 admin,密码 admin,首次登录后立即修改
  3. 进入后台「设置」页面,核心配置:
    • Repository directory :设置 Git 仓库的物理存储路径(建议放在非系统盘,如 D:\GitRepositories
    • 保存配置后,确保该目录已给 IIS_IUSRS 写入权限
  4. 点击「Repositories → Create new」即可创建第一个私有仓库

六、常见报错排查

  1. HTTP 错误 500.19 - Internal Server Error → web.config 权限不足,或 ASP.NET 未正确安装,重新执行 aspnet_regiis.exe -i 并检查文件夹权限

  2. 打开页面报 403 禁止访问 → 检查站点根目录的 IIS_IUSRS 读取权限,或确认默认文档已启用(Bonobo 自带默认页,一般是权限问题)

  3. Git push 提示权限错误 / 无法写入仓库 → 仓库存储目录未给 IIS_IUSRS 修改权限,或登录的账号没有该仓库的写入权限

  4. 提示找不到 git.exe/ 无法执行 Git 命令 → 服务器未安装 Git,或 Git 未加入系统 PATH;可在 Bonobo 设置中手动指定 git.exe 完整路径