凌峰创科服务平台

window 搭建git服务器

  1. 使用 Git for Windows 和 SSH(推荐,轻量、标准)

    window 搭建git服务器-图1
    (图片来源网络,侵删)
    • 适合个人开发者、小型团队,或者需要与 Linux/macOS 开发者无缝协作的场景。
    • 这是 Git 官方和社区最常用的方式,与 GitHub/GitLab 的使用体验一致。
  2. 使用 Gitea/Gogs(推荐,功能丰富、有 Web UI)

    • 适合需要 Web 界面、用户管理、问题跟踪等功能的中小型团队。
    • Gitea/Gogs 是轻量级的自托管 Git 服务,类似一个私有的 GitHub/GitLab。

准备工作

无论选择哪种方法,你都需要准备以下内容:

  1. 一台 Windows 机器
    • 可以是物理机,也可以是虚拟机(如 VMware, VirtualBox, Hyper-V)。
    • 建议使用 Windows ServerWindows 10/11 Pro/Enterprise 版本,因为它们对权限和网络设置的支持更好。
  2. 一个专用用户
    • 为了安全,强烈建议创建一个不用于日常登录的、专门用于 Git 服务的用户,创建一个名为 gituser 的用户,并将其加入 Users 组。
  3. 管理员权限

    你需要管理员权限来安装软件和配置系统。


使用 Git for Windows 和 SSH (最轻量)

这种方法的核心是利用 Windows 的用户系统,并通过 SSH 协议进行安全的代码传输。

window 搭建git服务器-图2
(图片来源网络,侵删)

步骤 1: 安装 Git for Windows

  1. 访问 Git for Windows 官网 下载并安装最新版本。
  2. 安装过程一路点击 "Next" 即可,使用默认设置即可满足绝大多数需求。
  3. 安装完成后,打开命令提示符 或 PowerShell,输入 git --version 验证安装是否成功。

步骤 2: 创建 Git 专用用户和仓库目录

  1. 创建用户

    • Win + R,输入 lusrmgr.msc 并回车(此方法在 Win10/11 Pro/Enterprise 中有效)。
    • 在左侧选择“用户”,右键点击空白处,选择“新用户...”。
    • 创建一个用户,例如用户名 gituser,设置一个强密码(之后可以禁用其登录权限)。
    • 记下这个用户名和密码。
  2. 创建仓库根目录

    • 在一个你喜欢的位置(D:\GitRepos)创建一个文件夹,用来存放所有 Git 仓库。
    • 右键点击该文件夹,选择“属性” -> “安全” -> “编辑” -> “添加”。
    • 输入你刚刚创建的用户名 gituser,点击“检查名称” -> “确定”。
    • 选中 gituser 用户,赋予其“完全控制”权限。

步骤 3: 初始化一个空仓库并配置 SSH

  1. gituser 身份登录

    • 最简单的方式是注销当前用户,然后以 gituser 的身份登录到 Windows 桌面。
    • 或者,在命令提示符(管理员)中运行 runas /user:gituser cmd,然后输入密码。
  2. 初始化仓库

    • 打开命令提示符,切换到你之前创建的仓库根目录,D:\GitRepos
    • 创建一个新项目文件夹,my-first-project.git
    • 在该文件夹中执行 git init --bare--bare 参数表示这是一个“裸仓库”,没有工作区,只用于代码的推送和拉取,是服务器的标准做法。
      # 假设你以 gituser 身份登录
      D:
      cd D:\GitRepos
      mkdir my-first-project.git
      cd my-first-project.git
      git init --bare

      你会看到提示 Initialized empty Git repository in D:/GitRepos/my-first-project.git/

  3. 配置 SSH 服务

    • Git for Windows 自带了 OpenSSH 服务,我们需要确保它正在运行。
    • Win + R,输入 services.msc 并回车。
    • 在服务列表中找到 OpenSSH SSH Server,确保其“启动类型”为“自动”,状态”为“正在运行”,如果没运行,右键点击“启动”。

步骤 4: 配置客户端连接

你的服务器端已经配置好了,在另一台开发机器(可以是同一台电脑的另一个用户,也可以是任何其他电脑)上,你需要配置 SSH 密钥。

  1. 在客户端生成 SSH 密钥

    • 打开开发机器的 Git Bash 或命令提示符。
    • 运行 ssh-keygen -t rsa -b 4096,一路按回车即可(使用默认路径和空密码)。
    • 完成后,你的公钥会保存在 C:\Users\你的用户名\.ssh\id_rsa.pub(Windows)或 ~/.ssh/id_rsa.pub(Git Bash)。
  2. 将公钥上传到服务器

    • 你需要将客户端的 id_rsa.pub 文件内容,追加到服务器 gituser 用户的 authorized_keys 文件中。

    • 方法A(推荐,使用 ssh-copy-id): 在客户端的 Git Bash 中运行:

      # 将你的公钥复制到服务器的 gituser 账户
      ssh-copy-id gituser@你的服务器IP地址

      它会提示你输入 gituser 的密码,成功后,以后就可以免密登录了。

    • 方法B(手动操作)

      1. 在客户端用记事本打开 id_rsa.pub,复制全部内容。
      2. 登录到服务器的 gituser 账户。
      3. 确保目录 D:\GitRepos\.ssh 存在,gituser 用户有读写权限。
      4. 在该目录下创建或编辑文件 authorized_keys,将刚才复制的公钥内容粘贴进去,保存。

步骤 5: 测试连接和使用

  1. 测试 SSH 连接: 在客户端的 Git Bash 或命令提示符中运行:

    ssh gituser@你的服务器IP地址

    如果成功,你会看到类似 Welcome to OpenSSH for Windows... 的欢迎信息,输入 exit 即可退出。

  2. 克隆和使用仓库

    # 克隆仓库
    git clone gituser@你的服务器IP地址:D:/GitRepos/my-first-project.git
    # 进入项目目录
    cd my-first-project
    # 创建一个文件并提交
    echo "Hello from Windows Git Server" > README.md
    git add .
    git commit -m "Initial commit"
    git push origin master

    如果一切顺利,你的代码就已经成功推送到 Windows 上的 Git 服务器了!


使用 Gitea (功能丰富的 Web UI)

Gitea 是一个用 Go 语言编写的开源 Git 服务,界面美观,功能齐全,非常适合作为小团队的私有 Git 平台。

步骤 1: 下载并安装 Gitea

  1. 访问 Gitea 官网 下载最新版本的 Windows 可执行文件(.exe)。
  2. 将下载的 gitea.exe 放置在一个固定的目录,C:\gitea

步骤 2: 创建 Gitea 专用用户和目录

  1. 创建用户:参照方法一,创建一个名为 gituser 的系统用户。
  2. 创建数据目录:在 C:\gitea 下创建一个名为 data 的文件夹,这个文件夹将存放 Gitea 的所有配置、数据库和 Git 仓库。
  3. 设置权限:右键 C:\giteaC:\gitea\data 文件夹,确保 gituser 用户拥有“完全控制”权限。

步骤 3: 创建和配置 app.ini

  1. C:\gitea 目录下,创建一个名为 custom.ini 的文件。

  2. 用记事本打开它,填入以下基本配置:

    [server]
    APP_NAME = My Private Git Server
    RUN_USER = gituser
    SSH_PORT = 2222  # 建议修改一个非标准的SSH端口,避免冲突
    HTTP_PORT = 3000
    ROOT_URL = http://你的服务器IP:3000/  # 访问Gitea的URL
    [repository]
    ROOT = C:\gitea\data\git\repositories  # 仓库存储路径
    [database]
    DB_TYPE = sqlite3
    PATH = C:\gitea\data\gitea.db  # SQLite数据库文件路径
    [log]
    MODE = file
    LEVEL = Info
    FILE_ROOT = C:\gitea\data\log

    注意ROOT_URLSSH_PORT 需要根据你的实际情况修改。

步骤 4: 安装 Gitea

  1. 以管理员身份打开命令提示符。

  2. 运行以下命令来安装 Gitea 为一个 Windows 服务:

    sc create Gitea binPath= "C:\gitea\gitea.exe web --config C:\gitea\custom.ini" start= auto DisplayName= "Gitea: Git with a cup of tea" obj= "NT AUTHORITY\LocalService"
    • binPath: 指向 gitea.exe 和你的配置文件。
    • obj: 使用 LocalService 运行,安全性较高。
    • start= auto: 设置为开机自启。
  3. 启动服务:

    net start Gitea

步骤 5: 初始化和访问 Gitea

  1. 打开浏览器,访问你在 custom.ini 中设置的 ROOT_URLhttp://192.168.1.100:3000/
  2. Gitea 会引导你进行初始设置(数据库初始化、管理员账户创建等)。
  3. 创建完管理员账户后,你就可以登录并创建仓库、管理用户、组织团队了。

步骤 6: 配置 SSH 连接 Gitea

Gitea 默认会监听一个 SSH 端口(我们在配置中设为 2222)。

  1. 在 Gitea 的 Web 界面,点击右上角你的头像 -> “设置” -> “SSH/密钥管理”。
  2. 点击“添加密钥”,将你客户端生成的 id_rsa.pub 文件内容粘贴进去并保存。
  3. 你可以通过 Gitea 提供的克隆地址来克隆仓库了,地址格式如下:
    # 在Gitea仓库页面上复制这个地址
    git clone ssh://git@你的服务器IP:2222/username/repository-name.git

    这里的 git 是 Gitea 的默认 SSH 用户,密码是你在 Gitea 上设置的密码。


总结与对比

特性 方法一 (Git + SSH) 方法二 (Gitea)
复杂度 低,只需安装 Git 中等,需下载和配置 Gitea
功能 仅提供核心 Git 仓库功能 提供完整的 Web UI、用户管理、问题跟踪、Wiki、Pull Request 等
用户管理 依赖 Windows 用户系统 Gitea 自带用户管理系统
适合场景 个人使用、小型团队、追求极简 中小型团队、需要类 GitHub 体验、需要项目管理和协作功能
推荐度 ★★★★☆ (标准、通用) ★★★★★ (功能强大、体验佳)

给你的建议:

  • 如果你只是想快速搭建一个自己的 Git 代码托管点,不关心 Web 界面和团队协作,方法一完全足够,且非常标准和稳定。
  • 如果你希望有一个漂亮的 Web 界面来管理项目、查看代码、分配任务,或者你的团队需要更丰富的协作功能,强烈推荐方法二(Gitea),它能给你带来接近 GitHub 的良好体验。
分享:
扫描分享到社交APP
上一篇
下一篇