ubuntu下thinkphp项目如何进行版本控制
在Ubuntu环境中,对ThinkPHP项目进行版本控制需安装Git并配置身份信息,执行`gitinit`关联远程仓库。规范`.gitignore`忽略`/runtime/`、`/vendor/`、`.env`等文件,避免提交缓存与敏感配置。仅提交`composer.json`与`composer.lock`管理依赖,采用分支策略协作,回退推送提交用`git
Ubuntu下ThinkPHP项目的版本控制实操指南

在Ubuntu环境中管理ThinkPHP项目,版本控制是绕不开的基础技能。不少新手在初始化时容易忽略一些细节,导致后续协作麻烦不断。下面我们把实操要点从头过一遍,每一步都给出可执行的命令和思路。
一 环境准备与初始化
- 安装 Git 很简单,一条命令搞定:
sudo apt update && sudo apt install -y git
装完后记得验证:git --version。 - 接着配置身份信息(全局生效):
git config --global user.name "Your Name"
git config --global user.email "you@example.com" - 进入 ThinkPHP 项目根目录(通常包含
thinkphp/、app/、config/等文件夹),执行:
git init - 关联远程仓库(GitHub/GitLab/Gitee 皆可),注意默认分支名可能是 main 或 master:
git remote add origin <你的仓库URL>
git branch -M main
git push -u origin main
以上几步走完,本地代码就纳入了 Git 管理,并且和远程仓库建立了追踪关系。接下来就能放心进行版本控制了。
二 规范 ThinkPHP 的.gitignore
很多人在初始化时忽略了 .gitignore,结果把运行缓存、依赖包甚至敏感配置都给提交上去了。正确的做法是提前规划好忽略规则。
- 必须忽略的目录与文件(示例):
- 运行时与缓存:
/runtime/(TP5/6 常见) - 依赖包:
/vendor/(只提交composer.json与composer.lock) - 用户上传:
/public/uploads/(或/runtime/upload/,按实际项目调整) - 环境配置:
.env(建议提供.env.example模板) - IDE/编辑器配置:
.idea/、.vscode/ - 日志与调试:
*.log、npm/yarn 调试日志等 - 建议的 .gitignore 片段:
/runtime/ /vendor/ /public/uploads/ .env .env.local .env.*.local .idea/ .vscode/ *.log npm-debug.log* yarn-error.log* *.DS_Store Thumbs.db
- 如果之前误提交了 vendor/ 或 runtime/,可以用以下命令将它们从版本控制中移除(本地文件保留):
git rm -r --cached vendor
git rm -r --cached runtime
git add .gitignore
git commit -m "chore: 移除 vendor 与 runtime 的版本控制"
git push
这样操作后,依赖、运行时和敏感配置都不会被提交到仓库,.env.example 模板则能保障团队环境一致性。
三 依赖管理与首次提交
- 先把依赖描述文件提交上去:
git add composer.json composer.lock
git commit -m "chore: 添加依赖描述文件" - 其他业务代码按需加入暂存区并提交:
git add .
git commit -m "feat: 初始化项目结构与路由" - 当团队成员拉取代码后,执行
composer install --optimize-autoloader --no-dev即可安装依赖。
只提交 composer.json 和 composer.lock 而不提 /vendor/,既能减小仓库体积,又能保证各环境依赖版本完全一致——这才是正确的依赖管理姿势。
四 分支策略与协作流程
分支策略的选择取决于团队规模和发布节奏。这里给出两种主流方案:
- 轻量迭代(GitHub Flow):从
main创建feature/分支,开发完成后通过 Pull Request 合并,保持main始终可发布。 - 规范发布(Git Flow):区分
develop、feature/、release/、hotfix/分支,适合多环境、多版本并行的复杂场景。
常用的协作命令范式:
git checkout -b feature/user-login # 开发完成后 git push -u origin feature/user-login # 在 GitHub/GitLab 创建 PR,Code Review 通过后合并到 main git checkout main && git pull
冲突处理也不复杂:git status 查看冲突文件 → 手动编辑解决 → git add <文件> → git commit 完成合并。这套流程能保证团队始终有清晰的版本线和可回退性。
五 常用回退与撤销操作
版本控制免不了要回退,但不同场景下要用不同的命令,否则容易造成不可逆损失。
- 安全撤销已推送的提交(生成新提交,保留历史):
git revert - 仅本地回退(⚠️危险,切勿用于已推送的公共分支):
git reset --hard - 恢复单个文件到某次提交:
git checkout-- path/to/file - 查看提交历史与差异:
git log --oneline -10
git diff^
以上命令覆盖了日常回退、文件恢复和排查差异的关键场景。只要记住:推送过的提交用 revert,本地未推送的用 reset,就能避免很多尴尬。


































