git仓库必须初始化在xampp的htdocs子目录(如htdocs/myapp),不能在htdocs根目录执行git init,否则会混入xampp示例文件、泄露.env等敏感配置、触发sourcetree卡死及apache权限异常。

Git 仓库必须初始化在 XAMPP 的 htdocs 子目录下(如 htdocs/myapp),不能直接 init 在 htdocs 根目录;否则会混入无关文件、泄露敏感配置、触发 SourceTree 卡死或 Apache 权限异常。
为什么 git init 不能在 htdocs 根目录执行
常见错误是右键 htdocs → “Git Init Here”,结果把 XAMPP 自带的 phpinfo.php、dashboard/、甚至 apache/logs/ 全部纳入版本控制。这会导致:
-
git status长时间卡在“计算差异”,因为vendor/或node_modules/被意外跟踪 -
.env或config.php里含本地数据库密码,一推远程就泄露 - SourceTree 启动时反复扫描整个
htdocs,CPU 占用飙升、界面无响应 - Apache 日志文件(如
access.log)被 Git 监控,每次请求都触发状态变更
正确初始化位置:每个项目单独建仓,路径必须匹配 URL
你的浏览器访问地址是 http://localhost/myblog,那 Git 仓库就必须在 htdocs/myblog,而不是 htdocs 或 htdocs/myblog/public。
- 先手动创建项目目录:
mkdir C:\xampp\htdocs\myblog - 进该目录执行:
git init - 立刻写好
.gitignore,至少包含:vendor/、node_modules/、.env、*.log、cache/ - 如果项目用 Composer,
composer install必须在git init之后、首次git add之前完成,否则vendor/会被误加
SourceTree 打不开或报错“无法加载仓库”的典型原因
不是 SourceTree 坏了,而是路径或权限没对齐:
- SourceTree 添加仓库时,路径必须精确到项目根目录(如
C:\xampp\htdocs\myblog),不能选htdocs父级 - Windows 下若用管理员启动 XAMPP 控制面板,但用普通用户开 SourceTree,可能因 UAC 导致文件锁冲突,表现为“正在加载…”一直转圈
- Apache 正在运行时,某些 PHP 框架(如 Laravel)会生成
storage/logs/laravel.log,若该文件已被 Git 跟踪,SourceTree 提交前会因文件被占用而失败 - 检查
.git/config中的[core]段落是否含filemode = false(Windows 常见),否则权限变更会频繁触发脏状态
克隆远程仓库后页面 404 或 500 的快速定位顺序
别急着重装 XAMPP,按这个顺序查:
- 确认 Apache 已启动,且
httpd.conf中未注释LoadModule php_module和AddHandler application/x-httpd-php .php - 浏览器访问
http://localhost/myproject/index.php—— URL 路径必须与htdocs下的文件夹名完全一致,大小写敏感 - 打开
error.log(路径通常为C:\xampp\apache\logs\error.log),搜PHP Parse error或Failed opening required - 如果项目含
.htaccess(如 Laravel),检查httpd.conf对应<directory></directory>区块是否设了AllowOverride All
最容易被忽略的是 .gitignore 的生效时机:它只对未跟踪的文件起作用。如果已经 git add -A 过,再改 .gitignore 是无效的,得先 git rm -r --cached . 再重新 git add .。











