如何在远程仓库保留database.db基础版本,本地使用更新版本
解决Git中SQLite数据库文件冲突与版本管理问题
核心思路
不直接提交本地动态更新的database.db,用schema.sql统一维护数据库结构,同时把仅由schema生成的基础版本数据库存入Git,通过Git命令忽略本地后续修改,既保留远程的基础版本,又避免多人协作时的冲突。
具体操作步骤
提交干净的基础数据库版本
先确保当前database.db是仅由schema.sql生成的无本地数据的干净版本,执行生成命令:sqlite3 database.db < schema.sql接着执行以下Git命令,将这个基础版本提交并标记为「追踪但忽略本地修改」:
git add database.db git commit -m "提交数据库基础版本(由schema.sql生成)" git update-index --skip-worktree database.db--skip-worktree参数会让Git停止追踪该文件的本地变动,远程仓库保留基础版本的同时,本地的动态更新不会被提交。完善.gitignore配置
把database.db加入.gitignore,防止团队成员误提交本地修改:echo "database.db" >> .gitignore git add .gitignore git commit -m "添加database.db到忽略列表"团队成员同步配置
其他成员拉取仓库后,先执行schema.sql生成本地基础数据库:sqlite3 database.db < schema.sql再执行同样的命令忽略本地修改:
git update-index --skip-worktree database.db
后续维护说明
- 如果需要更新远程仓库的基础数据库版本,先取消忽略:
重新用git update-index --no-skip-worktree database.dbschema.sql生成干净版本,提交后再重新标记忽略。 - 所有数据库结构变更必须通过修改
schema.sql实现,团队成员通过重新执行schema.sql同步本地结构,禁止直接提交本地修改后的database.db。
内容的提问来源于stack exchange,提问作者adahy
相关产品推荐
相关产品推荐

