如何在保留仓库文件的前提下,不提交本地对该文件的修改?
可行方案整理
方案一:使用Git的skip-worktree标记
这个方法能让Git忽略你对目标文件的本地修改,同时保留仓库中该文件的追踪状态:
- 确保当前
configuration.json没有未提交的修改(如果有,先提交或暂存) - 在终端执行命令:
git update-index --skip-worktree configuration.json - 之后你修改本地的
configuration.json时,git status不会再显示该文件的变更,提交其他文件也不会包含它 - 如果之后需要向仓库提交
configuration.json的正式修改,先取消标记:git update-index --no-skip-worktree configuration.json
优点:无需修改仓库结构,不影响团队其他成员;缺点:标记是本地的,换电脑需要重新设置
方案二:模板文件+.gitignore
适合团队协作场景,统一配置模板,每个人维护自己的本地配置:
- 将仓库中的
configuration.json重命名为configuration.json.example,提交这个模板文件到仓库 - 在本地复制
configuration.json.example为configuration.json,用于自己的开发测试 - 在项目根目录的
.gitignore文件中添加一行:configuration.json - 提交
.gitignore和configuration.json.example到仓库
优点:团队成员都能基于模板创建自己的配置,避免误提交本地参数;缺点:需要调整仓库文件结构,首次设置需要同步团队成员
方案三:临时暂存修改(适合偶尔使用)
如果只是临时不想提交修改,可以用暂存命令:
- 在提交其他文件前,执行命令暂存
configuration.json的修改:git stash push -m "temp config changes" configuration.json - 提交其他文件后,恢复暂存的修改:
git stash pop
优点:无需额外配置;缺点:每次提交都要重复操作,容易遗忘
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

