核心逻辑与环境准备
Git本身是独立的版本控制系统,Apache则是网页服务器。两者结合的目的是让团队成员能够通过浏览器或命令行,基于HTTP或HTTPS协议远程访问和同步代码库。这种方案适合中小型团队,不需要搭建重型平台,只需利用现有服务器即可实现代码托管。开始之前,请确保你的Linux服务器已安装Apache和Git,并且拥有sudo权限。CentOS系统可以用yum install httpd git,Ubuntu系统用apt install apache2 git。安装完成后启动Apache服务并设为开机自启,确认80和443端口未被防火墙拦截。
创建裸仓库与基础路由配置
多人协作不能直接用普通Git仓库,必须创建裸仓库。裸仓库只保留版本历史文件,不包含工作目录,专为网络共享设计。在Web根目录新建git项目文件夹,例如mkdir /var/www/git/myrepo.git,随后进入该目录执行git init --bare。此时仓库已就绪。接下来配置Apache让其识别Git协议。打开Apache站点配置文件,在
安全加固与权限控制
明文HTTP传输账号密码极易被嗅探,生产环境务必启用SSL。申请免费或付费证书后,在Apache配置中加载mod_ssl模块,指定SSLCertificateFile和SSLCertificateKeyFile路径,将监听端口改为443,并将所有HTTP请求强制跳转至HTTPS。权限方面,Apache进程默认以www-data或apache用户运行,需将仓库目录属主改为该用户,命令为chown -R www-data:www-data /var/www/git。密码文件建议使用htpasswd工具生成,每次新增协作者都追加一条记录。切勿随意赋予777权限,这会带来严重的安全隐患。对于高敏感项目,可进一步结合LDAP或OAuth2实现统一身份认证。
日常协作与常用命令
连接打通后,开发流程回归标准Git工作流。首次使用在其他终端运行git clone https://用户名:密码@服务器IP/git/myrepo.git,输入凭证后即可拉取完整历史。后续开发时,修改代码执行git add .暂存变更,git commit -m 提交说明记录版本,git push上传至远程。若多人并行开发,拉取新内容前务必git pull fetch origin && git merge origin/main,避免覆盖他人提交。遇到冲突时,Git会标记冲突文件,手动编辑解决后重新add和commit。定期执行git branch -d清理废弃分支,保持仓库轻量。所有操作均通过Apache网关完成,无需登录服务器即可协同。
故障排查与维护建议
常见问题多集中在网络和权限层面。克隆失败优先检查DNS解析和端口连通性,用curl测试URL返回状态码是否为200。推送被拒通常是因为远程分支处于锁定状态,或本地分支未跟踪上游,执行git push --set-upstream origin main可修复。权限拒绝提示时,核对Apache运行用户与仓库属主是否一致,检查SELinux或AppArmor策略是否阻断写入。长期运行后,仓库体积可能膨胀,定期执行git gc --aggressive压缩对象存储,清理reflog无用引用。建议每周备份仓库目录,防止误删导致数据丢失。掌握这些基础配置后,你可快速上手Git与Apache的联动,后续如需扩展CI/CD或代码审查功能,再平滑迁移至专业平台即可。



