背景
使用 git, 日常开发时经常会修改一些项目中已经追踪的配置文件,但是并不想提交更改。通常需要在每次提交时排除掉对应的文件,很麻烦。并且稍不注意就会提交到远端仓库里,影响到其他人。
解决方案
使用git update-index
命令,以下以config/sample.json
为例:
- 忽略文件修改:
git update-index --skip-worktree config/sample.json
- 取消忽略文件修改:
git update-index --skip-worktree config/sample.json
- 临时忽略(如果pull文件后,会被取消忽略):
git update-index --assume-unchanged config/sample.json
- 取消临时忽略:
git update-index --no-assume-unchanged config/sample.json
相关概念
worktree
worktree
允许 git 在仓库中创建多个工作树,从而可以在不同的工作树中进行不同的工作。每个工作树都有自己的 HEAD 指向,可以进行独立的操作。例如: 提交、修改、切换分支等,不会影响其他工作树。
几个基本操作:
- 创建:
git worktree add <path>
- 列出:
git worktree list
- 删除:
git worktree remove <path>
- 切换:
git worktree checkout <path>
标签:index,git,worktree,json,忽略,sample,config,追踪 From: https://www.cnblogs.com/smalltown/p/git_ignore_temporary_tracked_file.html需要注意,每个 worktree 都会占用磁盘空间。