-
使用 Git for Windows 和 SSH(推荐,轻量、标准)
(图片来源网络,侵删)- 适合个人开发者、小型团队,或者需要与 Linux/macOS 开发者无缝协作的场景。
- 这是 Git 官方和社区最常用的方式,与 GitHub/GitLab 的使用体验一致。
-
使用 Gitea/Gogs(推荐,功能丰富、有 Web UI)
- 适合需要 Web 界面、用户管理、问题跟踪等功能的中小型团队。
- Gitea/Gogs 是轻量级的自托管 Git 服务,类似一个私有的 GitHub/GitLab。
准备工作
无论选择哪种方法,你都需要准备以下内容:
- 一台 Windows 机器:
- 可以是物理机,也可以是虚拟机(如 VMware, VirtualBox, Hyper-V)。
- 建议使用 Windows Server 或 Windows 10/11 Pro/Enterprise 版本,因为它们对权限和网络设置的支持更好。
- 一个专用用户:
- 为了安全,强烈建议创建一个不用于日常登录的、专门用于 Git 服务的用户,创建一个名为
gituser的用户,并将其加入Users组。
- 为了安全,强烈建议创建一个不用于日常登录的、专门用于 Git 服务的用户,创建一个名为
- 管理员权限:
你需要管理员权限来安装软件和配置系统。
使用 Git for Windows 和 SSH (最轻量)
这种方法的核心是利用 Windows 的用户系统,并通过 SSH 协议进行安全的代码传输。

步骤 1: 安装 Git for Windows
- 访问 Git for Windows 官网 下载并安装最新版本。
- 安装过程一路点击 "Next" 即可,使用默认设置即可满足绝大多数需求。
- 安装完成后,打开命令提示符 或 PowerShell,输入
git --version验证安装是否成功。
步骤 2: 创建 Git 专用用户和仓库目录
-
创建用户:
- 按
Win + R,输入lusrmgr.msc并回车(此方法在 Win10/11 Pro/Enterprise 中有效)。 - 在左侧选择“用户”,右键点击空白处,选择“新用户...”。
- 创建一个用户,例如用户名
gituser,设置一个强密码(之后可以禁用其登录权限)。 - 记下这个用户名和密码。
- 按
-
创建仓库根目录:
- 在一个你喜欢的位置(
D:\GitRepos)创建一个文件夹,用来存放所有 Git 仓库。 - 右键点击该文件夹,选择“属性” -> “安全” -> “编辑” -> “添加”。
- 输入你刚刚创建的用户名
gituser,点击“检查名称” -> “确定”。 - 选中
gituser用户,赋予其“完全控制”权限。
- 在一个你喜欢的位置(
步骤 3: 初始化一个空仓库并配置 SSH
-
以
gituser身份登录:- 最简单的方式是注销当前用户,然后以
gituser的身份登录到 Windows 桌面。 - 或者,在命令提示符(管理员)中运行
runas /user:gituser cmd,然后输入密码。
- 最简单的方式是注销当前用户,然后以
-
初始化仓库:
- 打开命令提示符,切换到你之前创建的仓库根目录,
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/。
- 打开命令提示符,切换到你之前创建的仓库根目录,
-
配置 SSH 服务:
- Git for Windows 自带了 OpenSSH 服务,我们需要确保它正在运行。
- 按
Win + R,输入services.msc并回车。 - 在服务列表中找到
OpenSSH SSH Server,确保其“启动类型”为“自动”,状态”为“正在运行”,如果没运行,右键点击“启动”。
步骤 4: 配置客户端连接
你的服务器端已经配置好了,在另一台开发机器(可以是同一台电脑的另一个用户,也可以是任何其他电脑)上,你需要配置 SSH 密钥。
-
在客户端生成 SSH 密钥:
- 打开开发机器的 Git Bash 或命令提示符。
- 运行
ssh-keygen -t rsa -b 4096,一路按回车即可(使用默认路径和空密码)。 - 完成后,你的公钥会保存在
C:\Users\你的用户名\.ssh\id_rsa.pub(Windows)或~/.ssh/id_rsa.pub(Git Bash)。
-
将公钥上传到服务器:
-
你需要将客户端的
id_rsa.pub文件内容,追加到服务器gituser用户的authorized_keys文件中。 -
方法A(推荐,使用 ssh-copy-id): 在客户端的 Git Bash 中运行:
# 将你的公钥复制到服务器的 gituser 账户 ssh-copy-id gituser@你的服务器IP地址
它会提示你输入
gituser的密码,成功后,以后就可以免密登录了。 -
方法B(手动操作):
- 在客户端用记事本打开
id_rsa.pub,复制全部内容。 - 登录到服务器的
gituser账户。 - 确保目录
D:\GitRepos\.ssh存在,gituser用户有读写权限。 - 在该目录下创建或编辑文件
authorized_keys,将刚才复制的公钥内容粘贴进去,保存。
- 在客户端用记事本打开
-
步骤 5: 测试连接和使用
-
测试 SSH 连接: 在客户端的 Git Bash 或命令提示符中运行:
ssh gituser@你的服务器IP地址
如果成功,你会看到类似
Welcome to OpenSSH for Windows...的欢迎信息,输入exit即可退出。 -
克隆和使用仓库:
# 克隆仓库 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
- 访问 Gitea 官网 下载最新版本的 Windows 可执行文件(
.exe)。 - 将下载的
gitea.exe放置在一个固定的目录,C:\gitea。
步骤 2: 创建 Gitea 专用用户和目录
- 创建用户:参照方法一,创建一个名为
gituser的系统用户。 - 创建数据目录:在
C:\gitea下创建一个名为data的文件夹,这个文件夹将存放 Gitea 的所有配置、数据库和 Git 仓库。 - 设置权限:右键
C:\gitea和C:\gitea\data文件夹,确保gituser用户拥有“完全控制”权限。
步骤 3: 创建和配置 app.ini
-
在
C:\gitea目录下,创建一个名为custom.ini的文件。 -
用记事本打开它,填入以下基本配置:
[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_URL和SSH_PORT需要根据你的实际情况修改。
步骤 4: 安装 Gitea
-
以管理员身份打开命令提示符。
-
运行以下命令来安装 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: 设置为开机自启。
-
启动服务:
net start Gitea
步骤 5: 初始化和访问 Gitea
- 打开浏览器,访问你在
custom.ini中设置的ROOT_URL,http://192.168.1.100:3000/。 - Gitea 会引导你进行初始设置(数据库初始化、管理员账户创建等)。
- 创建完管理员账户后,你就可以登录并创建仓库、管理用户、组织团队了。
步骤 6: 配置 SSH 连接 Gitea
Gitea 默认会监听一个 SSH 端口(我们在配置中设为 2222)。
- 在 Gitea 的 Web 界面,点击右上角你的头像 -> “设置” -> “SSH/密钥管理”。
- 点击“添加密钥”,将你客户端生成的
id_rsa.pub文件内容粘贴进去并保存。 - 你可以通过 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 的良好体验。
