PHP文件未被追踪主因是.gitignore误配如*.php,应检查并修正规则;commit需用动词开头描述变更,关联issue;push前应pull--rebase;PHP路径须用__DIR__避免环境差异。

git add 之后为什么 php 文件没被追踪?
常见原因是 .gitignore 里默认包含了 *.php 或 vendor/、cache/ 等路径,导致 PHP 文件被忽略。执行 git check-ignore -v yourfile.php 可查具体被哪条规则屏蔽。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 检查项目根目录下的
.gitignore,删掉误写的*.php(除非你真不想提交任何 PHP) - 若只想跳过某些敏感文件(如
config.php),改用精确路径:config.php或**/config.php - 已忽略但想强制添加?用
git add -f config.php,不过上线前务必确认它不含数据库密码
commit 时该写什么 message 才算有效?
PHP 代码不是写完就 commit,message 写成“fix bug”或“update file”等于没写。Git 本身不校验内容,但团队协作中,差的 message 会让后续 git bisect 或 git blame 失效。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 用动词开头,说明“做了什么”:比如
refactor: extract DB connection logic from UserController,而不是change user controller - PHP 特定场景注意标注影响范围:如
fix: prevent SQL injection in search.php by using PDO::prepare - 关联 issue 时写
refs #123或closes #456,GitHub/GitLab 会自动联动
push 前要不要先 pull?
直接 git push origin main 报错 rejected - non-fast-forward 是最常遇到的卡点,尤其多人维护一个 PHP 项目时。这不是网络问题,而是远程分支有你本地没有的提交。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 习惯性在 push 前运行
git fetch origin && git status -uno,看是否落后 - 如果只是小修改且无冲突,
git pull --rebase origin main比 merge 更干净(避免多余 merge commit) - 如果 pull 后出现冲突,重点检查 PHP 的配置文件、路由定义、或 Composer 自动生成的
autoload_classmap.php—— 这些文件容易因composer install触发变更
提交含 require/include 的 PHP 文件要注意什么?
PHP 的动态加载特性会让看似正常的 commit 在别人机器上直接 fatal error。比如你本地用相对路径 require '../config/db.php';,但队友项目结构不同,或 CI 环境工作目录不一致,就会报 failed to open stream。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 统一用
__DIR__替代硬编码路径:require __DIR__ . '/../config/db.php'; - 避免在顶层脚本(如
index.php)里直接include全局函数库;改用 Composer 自动加载,或通过set_include_path()配置 - 提交前跑一次
php -l yourfile.php(语法检查),比等 CI 报错更快发现问题
实际提交 PHP 代码最麻烦的往往不是命令本身,而是路径依赖、环境差异和团队约定。别只盯着 git push 成功与否,要确保别人 git clone && composer install && php index.php 能跑通。











