1. 为什么选择Git+局域网共享的开发模式?
在Windows环境下采用Git结合局域网共享的开发方式,对于中小型团队来说是个极具性价比的解决方案。我最初接触这种模式是在2016年参与一个硬件配套软件开发项目,当时团队预算有限但又需要版本控制。相比搭建Git服务器,局域网共享方案无需额外硬件投入,五分钟内就能完成部署。
这种模式特别适合以下场景:
- 3-5人的小型开发团队
- 需要频繁交换大型二进制文件(如Unity项目、视频素材)
- 临时性的协作开发需求
- 内网环境下的安全开发要求
注意:虽然Git本身是分布式版本控制系统,但通过局域网共享可以实现类似集中式仓库的工作流程,这对刚从SVN迁移过来的团队尤其友好。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 Git for Windows的安装要点
推荐使用Git for Windows(包含Git Bash和MinGW32环境),这是最接近Linux原生体验的Windows Git方案。安装时有几个关键选项需要注意:
-
在"Select Components"界面:
- 勾选"Git Bash Here"和"Git GUI Here"(方便资源管理器右键菜单)
- 勾选"Associate .sh files to be run with Bash"(支持shell脚本)
-
在"Adjusting your PATH environment"界面:
- 选择"Git from the command line and also from 3rd-party software"
- 避免选择"Use Git from Git Bash only"(会限制命令行使用)
-
在"Configuring the line ending conversions"界面:
- 选择"Checkout Windows-style, commit Unix-style line endings"
- 这个设置能避免跨平台开发时的换行符问题
安装完成后,在Git Bash中运行以下命令验证安装:
bash复制git --version
which git
2.2 局域网共享文件夹设置
在作为Git服务器的Windows电脑上(假设是192.168.1.100):
- 创建专用文件夹(如D:\GitRepos)
- 右键文件夹 → 属性 → 共享 → 高级共享
- 勾选"共享此文件夹"
- 设置共享名(如GitRepos)
- 点击"权限"按钮,给Everyone赋予"完全控制"权限
- 在安全选项卡中,确保用户有完全控制权限
在其他开发机上,可以通过以下方式访问共享:
bash复制\\192.168.1.100\GitRepos
提示:建议为Git仓库创建专用Windows账户,避免使用管理员账户直接操作。
3. 创建和配置共享Git仓库
3.1 初始化共享仓库
在服务器端的共享文件夹中创建裸仓库(bare repository):
bash复制cd /d/GitRepos
mkdir project.git
cd project.git
git init --bare
裸仓库的特点:
- 不包含工作目录
- 只保存版本历史记录
- 适合作为中央仓库使用
3.2 开发者本地仓库配置
每个开发者在自己的工作站上克隆仓库:
bash复制git clone //192.168.1.100/GitRepos/project.git
首次使用需要配置用户信息:
bash复制git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
建议的额外配置:
bash复制git config --global core.autocrlf true # 自动处理换行符
git config --global core.ignorecase false # 严格区分文件名大小写
4. 日常开发工作流程
4.1 典型协作流程示例
-
开始工作前拉取最新变更:
bash复制
git pull origin main -
创建特性分支:
bash复制
git checkout -b feature/login-page -
开发完成后提交变更:
bash复制git add . git commit -m "实现登录页面基础布局" -
推送到共享仓库:
bash复制
git push origin feature/login-page -
在共享仓库所在机器上合并分支:
bash复制
git checkout main git merge feature/login-page
4.2 处理二进制文件的技巧
局域网共享Git仓库的一个优势是处理大型二进制文件。推荐使用Git LFS(Large File Storage):
-
安装Git LFS:
bash复制
git lfs install -
在项目根目录创建.gitattributes文件,指定要跟踪的二进制类型:
code复制*.psd filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text -
像普通文件一样添加和提交:
bash复制git add .gitattributes git add assets/image.psd git commit -m "添加设计稿"
5. 常见问题排查与优化
5.1 权限问题解决方案
当出现"permission denied"错误时,检查以下方面:
- 共享文件夹的NTFS权限和共享权限是否都配置正确
- 尝试使用IP地址而非主机名访问共享
- 在Git Bash中测试网络连通性:
bash复制
ping 192.168.1.100 smbclient -L //192.168.1.100 -U username
5.2 性能优化技巧
-
关闭Windows搜索索引:
- 对共享文件夹右键 → 属性 → 高级 → 取消"允许索引此文件夹中的文件内容"
-
调整Git配置:
bash复制git config --global core.preloadindex true git config --global core.fscache true git config --global pack.threads 4 -
对于大型仓库,考虑定期执行:
bash复制
git gc --aggressive
5.3 备份策略
虽然局域网共享方便,但仍需建立备份机制:
-
定期压缩仓库文件夹:
bash复制tar -czvf backup-$(date +%Y%m%d).tar.gz /d/GitRepos -
设置Windows任务计划,每天凌晨自动备份
-
重要项目建议额外推送到远程Git服务(如GitHub、GitLab)
6. 进阶配置与技巧
6.1 使用Git Hook实现自动化
在共享仓库的hooks目录下可以添加脚本,例如pre-receive用于代码检查:
bash复制#!/bin/bash
while read oldrev newrev refname; do
if [[ $refname = "refs/heads/main" ]]; then
echo "正在检查提交..."
git diff --name-only $oldrev $newrev | grep -q "敏感文件" && {
echo "错误:提交包含敏感文件"
exit 1
}
fi
done
6.2 与Visual Studio Code集成
-
设置VSCode使用Git Bash作为默认终端:
- 打开设置(JSON)添加:
json复制"terminal.integrated.profiles.windows": { "Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe", "args": ["--login"] } }, "terminal.integrated.defaultProfile.windows": "Git Bash" -
推荐安装的VSCode插件:
- GitLens
- Git Graph
- Remote - SSH(如需连接其他开发机)
6.3 替代方案对比
当团队规模超过10人时,建议考虑迁移到专业Git服务:
| 方案 | 优点 | 缺点 |
|---|---|---|
| 局域网共享Git | 零成本、配置简单 | 缺乏权限管理、无Web界面 |
| GitLab CE | 完整的功能套件 | 需要服务器资源 |
| GitHub私有仓库 | 无需维护基础设施 | 需要付费 |
| Gitea | 轻量级自托管 | 需要基础部署知识 |
我在实际项目中通常会根据团队规模分阶段采用不同方案。对于3-5人的初创团队,局域网共享Git完全够用;当发展到10人左右时,就会部署Gitea;超过20人则考虑GitLab CE。
